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))

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐