如何读取这个JSON文件?

2024-04-16 04:46:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个JSON文件,如下所示:

20219
{"topic":"electronics","question":"What is the effective differencial effective of this circuit","excerpt":"I'm trying to work out, in general terms, the effective capacitance of this circuit (see diagram: http://i.stack.imgur.com/BS85b.png).  \n\nWhat is the effective capacitance of this circuit and will the ...\r\n        "}
{"topic":"electronics","question":"Heat sensor with fan cooling","excerpt":"Can I know which component senses heat or acts as heat sensor in the following circuit?\nIn the given diagram, it is said that the 4148 diode acts as the sensor. But basically it is a zener diode and ...\r\n        "}
{"topic":"electronics","question":"Outlet Installation--more wires than my new outlet can use [on hold]","excerpt":"I am replacing a wall outlet with a Cooper Wiring USB outlet (TR7745).  The new outlet has 3 wires coming out of it--a black, a white, and a green.  Each one needs to be attached with a wire nut to ...\r\n        "}
{"topic":"electronics","question":"Buck Converter Operation Question","excerpt":"i have been reading about the buck converter, and have also referred to the various online resources like here.\n\n\n\nIn the above circuit, as I understand, when switch closes, current starts to increase ...\r\n        "}
{"topic":"electronics","question":"Urgent help in area of ASIC design, verification, SoC [on hold]","excerpt":"I need help with deciding on a Master's Project and I need some ideas related to the field of ASIC Design/ verification or something related to SoC's, FPGA and or combination. I wish to pursue the ...\r\n        "}

第一行是一个数字(20219),基本上是文件中的记录数后面跟着数据。我试着用了以下方法:

import json
with open('training_json.json') as data_file:
    ndocs = json.readlines(data_file)[0]

以及

with open('training_json.json') as data_file:
    next(data_file)
    docs = json.load(data_file)

但没能通过。有什么办法可以读取第一行的数字和下面不同对象中的数据吗?


Tags: andofthetojsondatatopicis
1条回答
网友
1楼 · 发布于 2024-04-16 04:46:37

阅读第一行,然后将解析的所有内容发送到json.loads()

with open("training_json.json") as data_file:
    number = next(data_file).strip()
    your_json = json.loads(data_file.read())

如果每行上都有不同的JSON对象(如图中所示),则逐行读取rest并存储在列表中:

with open("training_json.json") as data_file:
    number = next(data_file).strip()
    your_jsons = [json.loads(line) for line in data_file]

如果JSON被随意地分解成几行,那么在解析它之前,您必须进行一些手动重建。

相关问题 更多 >