1、json.dumps()和loads()
json.dumps()将dict类型数据转成str。
json.loads()刚好相反,将str类型的数据转成dict。
import json
data= {'a':'1111','b':'2222','c':'3333','d':'4444'}
filename = r"d:\1.json"
str_data = json.dumps(data)
print(str_data)
dict_data = json.loads(str_data)
print(dict_data)
2、json.dump()和json.load()
json.dump主要用来文件写入,json.load主要用来文件读取。但是只能写入读取一条数据,多条会报错。
json.dump(x,f),x是对象,f是一个文件对象,这个方法可以将json字符串写入到文件中。
json.load(f),f是一个文件对象,这个方法可以从文件中读取json数据。
'''
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import json
data = {'a':'1111','b':'2222','c':'3333','d':'4444'}
filename = r"d:\1.json"
with open(filename, "w") as f:
json.dump(data,f)
with open(filename, 'r') as f:
jsObj = json.load(f)
for key in jsObj.keys():
print('key: %s value: %s' % (key,jsObj.get(key)))
输出:
key: a value: 1111
key: b value: 2222
key: c value: 3333
key: d value: 4444
3、如何读取写入多行数据呢?
import json
filename = r"d:\1.json"
data = [{'a':'1111','b':'2222','c':'3333','d':'4444'},
{'e':'1111','f':'2222','g':'3333','h':'4444'},
{'i':'1111','j':'2222','k':'3333','l':'4444'},
{'m':'1111','n':'2222','o':'3333','p':'4444'}]
with open(filename,'w') as f:
for i in range(len(data)):
f.write(json.dumps(data[i])+'\n')
with open(filename,'r') as f:
jsObj=[json.loads(line) for line in f]
print(jsObj)
|