Python 中 字符串与字典间转换

本文介绍了Python中eval与str函数的应用场景,包括字符串与字典的相互转换,以及exec语句用于执行存储在字符串中的Python代码。同时提到了在处理编码问题时的解决方法,并推荐使用JSON作为更优选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 字典和字符串转换 eval()和str()函数

>>> c="{'origin_name': u'\u7ea2\u91d1\u9f991', 'material_code': u'5678567', 'id': 13}"
>>>c
"{'origin_name': u'\u7ea2\u91d1\u9f991', 'material_code': u'5678567', 'id': 13}"
>>> d=eval(c)
>>> d
{'origin_name': u'\u7ea2\u91d1\u9f991', 'material_code': u'5678567', 'id': 13}
>>>e=str(d)
>>>e
"{'origin_name': u'\u7ea2\u91d1\u9f991', 'material_code': u'5678567', 'id': 13}"



exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行 这些语句。下面是一个简单的例子。

>>> exec 'print "Hello World"'
Hello World 

eval语句用来计算存储在字符串中的有效Python表达式。下面是一个简单的例子。

>>> eval('2*3')

    有时候编码问题,需要

tagname =  eval(tagname.decode("utf8")),或者

tagname =  eval(tagname.replace("\r\n","").decode("utf8"))


现在有最好的办法:用json

try:
   # For Python < 2.6 or people using a newer versionof simplejson
   import simplejson as json
except ImportError:
   # For Python >= 2.6
   import json


### Python字符串字典的用法及相互转换 #### 字符串的操作 在 Python 中,字符串是不可变序列类型。可以使用多种方式来创建和处理字符串。 定义字符串可以通过单引号或双引号包裹字符[^5]: ```python name = &#39;chenduxiu&#39; profession = "学生" ``` 访问字符串中的特定部分可通过下标索引或切片实现。例如获取 `s` 的第 3 和第 4 个字符(注意索引是从零开始),以及从倒数第五到倒数第三个字符[^2]: ```python s = &#39;Python&#39; print(s[2:4]) # 输出 th print(s[-5:-2]) # 输出 yth ``` 对于格式化输出,存在几种不同的方法。一种较新的做法是在字符串前面加上字母 `f` 或者 `F` 来启用 f-string 功能,在大括号内放置表达式即可完成替换[^4]: ```python name = "xiaoming" address = "海淀区神州科技园B座2层" formatted_string = f"姓名:{name}\n地址:{address}" print(formatted_string) ``` #### 字典的基础概念及其基本操作 字典是一种可变容器模型,并且能够存储任意类型的对象。每个键其对应的值之存在着映射关系;键必须唯一而值则不必如此。下面展示如何初始化一个简单的字典并对其进行增删改查等常规操作[^1]: ```python person_info = {"name": "张三", "age": 28, "city": "北京"} # 添加新条目 person_info["email"] = "zhangsan@example.com" # 修改已有条目的值 person_info["age"] = 29 # 删除某个条目 del person_info["city"] # 查询指定键是否存在 has_email = "email" in person_info ``` #### 字符串字典的方法 当需要把 JSON 格式的字符串转化为 Python 字典时,通常会借助于标准库模块 json 提供的功能函数 loads() 完成解析工作: ```python import json json_str = &#39;{"name": "李四", "gender": "male"}&#39; dict_obj = json.loads(json_str) print(dict_obj[&#39;name&#39;]) # 输出:李四 ``` 相反地,如果要将 Python 字典变成 JSON 形式的字符串,则应该调用 dumps 方法: ```python original_dict = {&#39;id&#39;: 1001, &#39;title&#39;: &#39;工程师&#39;} json_representation = json.dumps(original_dict) print(json_representation) # 输出类似于:{"id": 1001, "title": "\u7cbe\u5de6"} ``` #### 字典字符串的方式 除了上述提到利用 json 库外,还可以直接运用 str 函数得到表示形式较为直观但不具备结构化的版本: ```python sample_dict = {1: &#39;red&#39;, 2: &#39;green&#39;} stringified_version = str(sample_dict) print(stringified_version) # 输出:{1: &#39;red&#39;, 2: &#39;green&#39;} ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值