如何读写json(JaveScript Object Notation) 编码格式数据
1 把数据转为json格式
>>> import json
>>> data = {'name': 'xiecl', 'age': 16}
>>> json_str = json.dumps(data)
>>> json_str
'{"name": "xiecl", "age": 16}'
>>> import json
>>> data = {'name': 'xiecl', 'age': 16}
>>> json_str = json.dumps(data)
>>> json_str
'{"name": "xiecl", "age": 16}'
2 把json格式转为python数据结构
>>> data = json.loads(json_str)
>>> data
{'name': 'xiecl', 'age': 16}
>>> data = json.loads(json_str)
>>> data
{'name': 'xiecl', 'age': 16}
3 写入硬盘为json文件, 然后读出
>>> import json
>>> data = {'name': 'xiecl', 'age': 16}
>>> # 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_back = json.load(f)
...
>>> data_back
{'name': 'xiecl', 'age': 16}
>>> import json
>>> data = {'name': 'xiecl', 'age': 16}
>>> # 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_back = json.load(f)
...
>>> data_back
{'name': 'xiecl', 'age': 16}
4 前面第三部分写入文件为无格式写入,文件中效果为
# 打开data.json查看
{"name": "xiecl", "age": 16}
# 打开data.json查看
{"name": "xiecl", "age": 16}
显示为一行,如果数据较多时,则比较难查看,下面为格式化写入
>>> import json
>>> data = {'name': 'xiecl', 'age': 16}
>>> # Writing JSON data with specify format
... # Parameter sort_keys 是否按照字母排序
... # Parameter indent 缩进的空格数
... # Parameter separators 分割符号形式
... with open('data.json', 'w') as f:
... json.dump(data, f, sort_keys=True, indent=4, separators=(',', ': '))
...
# 打开data.json查看
{
"age": 16,
"name": "xiecl"
}
>>> import json
>>> data = {'name': 'xiecl', 'age': 16}
>>> # Writing JSON data with specify format
... # Parameter sort_keys 是否按照字母排序
... # Parameter indent 缩进的空格数
... # Parameter separators 分割符号形式
... with open('data.json', 'w') as f:
... json.dump(data, f, sort_keys=True, indent=4, separators=(',', ': '))
...
# 打开data.json查看
{
"age": 16,
"name": "xiecl"
}