python str和json互转以及注意事项

str转json

str转换为json格式,前提一定需要保证这个str的格式和json是一致的,即左边最外层是大括号,右边的最外层是大括号。如果不一致,推荐用正则进行拆分至和json格式一致

1. 通过json.loads进行转换

import json
str = '{"key": "wwww", "word": "qqqq"}'
j = json.loads(str)
print(j)
print(type(j))

注意的是,json中内部数据需要用双引号来包围,不能使用单引号,如刚才的写法,如果写成这样,就会发生错误:

import json
str = "{'key': 'wwww', 'word': 'qqqq'}"
j = json.loads(str)
print(j)
print(type(j))

报错:
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

2.literal_eval

使用json.load()不能解析的,可以使用该函数进行解析。

可以将字符串str解析成list,tuple,dict,而且避免了eval的安全性的问题。

import ast
str = "{'key': 'wwww', 'word': 'qqqq'}"
# j = json.loads(str)
j = ast.literal_eval(str)
print(j)
print(type(j))

输出
{'key': 'wwww', 'word': 'qqqq'}
<class 'dict'>

json转str

使用json.dumps的方法,可以将json对象转化为字符串

data = {'name':'wjp','age':'22'}
data = json.dumps(data)

猜你喜欢

转载自blog.csdn.net/pearl8899/article/details/119578614