读写json代码
# -*- coding:utf-8 -*-
#读取json文件,输出的data为字典
def load_json():
with open('data.json','r') as json_file:
data = json.load(json_file)
return data
#输出json文件,其中data为字典
def store(data):
with open('data.json','w') as json_file:
json_file.write(json.dumps(data))
函数说明
dumps是将dict转化成json格式,loads是将json转化成dict格式
dump和load也是类似的功能,只是与文件操作结合起来了
- dumps() 参数为dict
- loads() 参数为str
- dump() 参数为(dict,*file)
- load() 参数为*file,该文件为json
将dict格式转换成str(json格式),使用json.dumps()
将str(json格式)转换成dict数据格式,使用json.loads()
data = {
'name' : 'ACME',
'shares' : 100,
'price' : 542.23
}
json_str = json.dumps(data)
newdata = json.loads(json_str)
print(newdata==data)
#输出结果为TRUE
如果你要处理的是文件而不是字符串,你可以使用 json.dump()和json.load() 来编码和解码 JSON 数据。
例如:
# Writing JSON data
with open('data.json', 'w') as f:
json.dump(data, f)
# Reading data back
with open('data.json', 'r') as f:
data = json.load(f)
特别说明
- json库不支持带BOM的UTF-8的格式编码,所以使用notepad++对json进行编码格式转换。
- 对路径数据读取的时候,“\”需要转义,使用"\"。
- json何python的对应关系
python<——>json
Python | JSON |
---|---|
dict | object |
list | array |
str,unicode | string |
int,long,float | number |
True | true |
False | false |
None | null |