简单介绍如何使用 Python的 json 模块来编码和解码 JSON 对象。
主要函数:
json.dumps():用于将 python 对象编码成 JSON 字符串
json.dump():用于将 python 对象编码成 JSON 字符串并存储为json文件
json.loads():将JSON数据解析问python对象
json.load():从json文件中将JSON解析为python对象
json.dumps()
语法:
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=“utf-8”, default=None, sort_keys=False, **kw)
obj:待编码的python对象
skipkeys:True可以跳过非string对象当作key的处理,防止抛ValueError的异常
ensure_ascii:False在json中输出中文字符
indent:指定缩进字符长度
separators:去掉指定字符两边的空格
encoding:编码格式
sort_keys:True按字典的keys排序
示例:
data = {'a':1,'d':4,'e':5,'b':2,'c':3}
jdata = json.dumps(data,sort_keys=True,indent=4,separators=(',',':'))
print(data,'\n',
jdata)
# 结果
{'a': 1, 'd': 4, 'e': 5, 'b': 2, 'c': 3}
{
"a":1,
"b":2,
"c":3,
"d":4,
"e":5
}
json.dump()
语法
json.dumps(obj,fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=“utf-8”, default=None, sort_keys=False, **kw)
相比json.dumps()多了一个fp参数,用于指定保存的文件句柄。
示例
将data编码为JSON并保存在example.json
data = {'a':1,'d':4,'e':5,'b':2,'c':3}
with open('./example.json','w') as f:
json.dump(data,f,indent=4,separators=(',',':'))
python类型向JSON类型转换对照
dict =》object
list, tuple =》array
str, unicode =》string
int, long, float =》number
True =》true
False =》false
None =》null
json.loads()
语法
json.loads(s, *, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
示例
jdata = ' {"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}'
text = json.loads(jdata)
print(text)
# 结果
{'a': 1, 'd': 4, 'e': 5, 'b': 2, 'c': 3}
json.load()
语法
json.load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
示例
从文件 example.json读取解析JSON
with open('./example.json','r') as f:
data = json.load(f)
print(data)
# 结果
{'a': 1, 'd': 4, 'e': 5, 'b': 2, 'c': 3}