如何阅读这个JSON文件?

Clo*_*ave 2 python json

我有一个看起来像这样的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        "}
Run Code Online (Sandbox Code Playgroud)

第一行是一个数字(20219),它基本上是文件中的记录数,后跟数据.我尝试使用以下内容:

import json
with open('training_json.json') as data_file:
    ndocs = json.readlines(data_file)[0]
Run Code Online (Sandbox Code Playgroud)

with open('training_json.json') as data_file:
    next(data_file)
    docs = json.load(data_file)
Run Code Online (Sandbox Code Playgroud)

但它无法通过.任何想法我如何读取第一行的数字和下面的数据在不同的对象?

zwe*_*wer 10

阅读第一行,然后发送其他所有内容进行解析json.loads():

with open("training_json.json") as data_file:
    number = next(data_file).strip()
    your_json = json.loads(data_file.read())
Run Code Online (Sandbox Code Playgroud)

如果你在每一行上有一个不同的JSON对象(从你的图像中看到它),那么逐行阅读其余的并存储在一个列表中:

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

如果您的JSON在线路上被破坏了,那么在进行解析之前,您必须进行一些手动重建.