json文件是一种常见的数据存储文件,比txt看着高级点,比xml看着人性化一点。
同时,json作为一种通用协议的文件格式,可以被各种语言方便地读取。所以,json非常适合用来存储结构化的数据。
json的具体介绍和使用规范:JSON
本文将关于python读取json做一个小小的记录和总结。
1. 读取json
一般情况下的json文件,存储的是python中的一个dict。
如在"dabao.json"中有以下内容:
{
"name": "dabao",
"id":123,
"hobby": {
"sport": "basketball",
"book": "python study"
}
}
需要读取"dabao.json"的话,python脚本可以这么写:read_json.py
import json
f = open('dabao.json', 'r')
content = f.read()
a = json.loads(content)
print(type(a))
print(a)
f.close()
注意,需要先用open来读取文件,再用json.loads()将读取内容转化为python字典。
2. python将字典保存成json
直接给代码:
import json
a = {
"name": "dabao",
"id":123,
"hobby": {
"sport": "basketball",
"book": "python study"
}
}
b = json.dumps(a)
f2 = open('new_json.json', 'w')
f2.write(b)
f2.close()
首先通过json.dumps()把dict降级为字符串。再将字符串写入json文件中。
json_path = '**.json'
with open(json_path, 'r') as json_file:
annos = json.load(json_file)
jsonOrderedFile = json.dumps(annos, sort_keys=True, indent = 4)
with open('**.json', 'w') as jsonfile:
jsonfile.write(jsonOrderedFile)
JSON读取大量数据错误:JSONDecodeError: Extra data: line 2 column 1或者ValueError: Extra data: 类似错误处理
import json
# 由于文件中有多行,直接读取会出现错误,因此一行一行读取
file = open("papers.json", 'r', encoding='utf-8')
papers = []
for line in file.readlines():
dic = json.loads(line)
papers.append(dic)
print(len(papers))