1、如何读写json数据?
????????实际案例:
????????????????在web应用中常用JSON(JavaScript Object Notation)格式传输数据,例如我们利用Baidu语音识别服务器做语音识别,将本地音频数据post到Baidu语音识别服务器,服务器响应结果为json字符串:
????????????????{"corpus_no":"6303355448008565863",
????????????????"err_mg":"sucess.", "err_no":0, "result":["您好,"],
????????????????"sn":"418359718861467614305"}
????????????????在python中如何读写json数据?
????????解决方案:
????????????????使用标准库中的json模块,其中loads,dumps函数可以完成json数据的读写。
????????????????注:百度语音识别文档 https://ai.baidu.com/ai-doc/SPEECH/ek38lxj1u
2、代码演示
l = [1, 2, 'abc', {'name': 'Bob', 'age': 13}]
# (1)dumps可以将python对象转换成json字符串
print(json.dumps(l))
# 调整json字符串输出形式,去掉空格
# 将默认分隔符的逗号和冒号去掉空格
print(json.dumps(l, separators=(',', ':')))
d = {'b': None, 'a': 5, 'c': 'abc'}
print(json.dumps(d))
# 对输出的键进行排序,sort_keys默认为False
print(json.dumps(d, sort_keys=True))
# (2)将json字符串转换成python对象
l2 = json.loads('[1, 2, "abc", {"name": "Bob", "age": 13}]')
print(l2[0])
d2 = json.loads('{"b": null, "a": 5, "c": "abc"}')
print(d2)
# (3)load和dump
'''
load和dump与loads和dumps功能是一致的,
只不过接口不一样,load和dump接口是一个文件。
'''
with open('demp.json', 'w') as f:
# 将json数据写进一个文件当中去
json.dump(l, f)
with open('demp.json', 'r') as f:
# 读取demp.json文件内容
j = json.load(f)
print(j)
|