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)