Python字符串和json格式之间的转换是开发中非常常见的需求。在Python中,json模块提供了可以将json数据转换为Python数据结构的方法,而Python中的字符串可以通过操作符和方法进行转换。
字符串转为json
将Python字符串转化为json格式需要使用json模块的loads函数。
import json
str_data = '{"name":"张三","age":20,"hobby":["篮球","游泳"]}'
# 将字符串转换为字典
dict_data = json.loads(str_data)
print(dict_data)
解析结果:
{'name': '张三', 'age': 20, 'hobby': ['篮球', '游泳']}
json转为字符串
将Python数据结构转换成json字符串,使用json模块中的dumps函数即可。
import json
dict_data = {'name': '张三', 'age': 20, 'hobby': ['篮球', '游泳']}
# 将字典转换为json格式的字符串
str_data = json.dumps(dict_data, ensure_ascii=False)
print(str_data)
输出结果:
{"name": "张三", "age": 20, "hobby": ["篮球", "游泳"]}
注意事项
在进行字符串和json格式之间的转换时,需要注意以下几个问题:
-
字符串里的单引号或双引号要注意转义符的使用,以避免出现解析错误。
-
转换成json格式的数据,中文可能会被转义,如果要避免这种情况,可以设置ensure_ascii参数为False。
-
转换过程中出现异常需要进行异常处理,以避免后续操作出错。
import json
# 双引号
str_data1 = '{"name":"张三","age":20,"hobby":["篮球","游泳"]}'
# 单引号
str_data2 = "{'name':'李四','age':22,'hobby':['足球','健身']}"
# 单引号需要进行转义处理
str_data2 = str_data2.replace("'", "\"")
# 转换为字典
try:
dict_data1 = json.loads(str_data1)
print(dict_data1)
dict_data2 = json.loads(str_data2)
print(dict_data2)
except Exception as e:
print("字符串格式不正确:{}".format(str(e)))
输出结果:
{'name': '张三', 'age': 20, 'hobby': ['篮球', '游泳']}
{'name': '李四', 'age': 22, 'hobby': ['足球', '健身']}
import json
# 字典数据
dict_data = {'name': '王五', 'age': 18, 'hobby': ['乒乓球', '篮球']}
# 转换为json格式数据
try:
str_data = json.dumps(dict_data, ensure_ascii=False)
print(str_data)
except Exception as e:
print("字典结构不正确:{}".format(str(e)))
输出结果:
{"name": "王五", "age": 18, "hobby": ["乒乓球", "篮球"]}
以上就是转换字符串和json格式的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python字符串str和json格式相互转换 - Python技术站