2017-07-25 2 views
1

Ich habe eine JSON-Datei, dieLesen JSON-Dateien in Python

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  "} 

Die erste Zeile ist eine Zahl (= 20219) sieht wie folgt aus, die im Grunde Anzahl der Datensätze in der Datei gefolgt von den Daten ist. Ich versuchte, die folgenden-

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

und

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

mit, konnte aber nicht durch. Irgendwelche Ideen, wie ich die Nummer in der ersten Zeile und die Daten unten in verschiedenen Objekten lesen kann?

+1

Versuchen Sie 'json.loads'. –

+1

könnten Sie ein Snippet Ihrer JSON-Datei als Text veröffentlichen? Ich würde upvote :) –

Antwort

5

die erste Zeile lesen, dann alles andere für die Analyse zu json.loads() senden: Sie haben eine auf jeder Zeile Objekt verschiedene JSON

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

Im Fall (wie es von Ihrem Bild angezeigt wird), dann lesen Sie den Rest Linie -von-line und speichern Sie in einer Liste:

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

Wenn Ihr JSON haphazzardly auf Linien nach unten gebrochen wird, werden Sie einige manuelle Rekonstruktion zu tun haben, bevor Sie es zu analysieren.

+0

Sie brauchen '.strip()' nach 'next' wenn Sie es fallen lassen. –