2016-04-09 3 views
-2

Also habe ich eine .json Datei, mit der mein Skript arbeiten muss. Das Problem ist, dass mein Skript Zeilenleser verwendet, um durch die Eingabedatei zu gehen, und die JSON-Datei, die ich habe, ist alle in einer einzigen großen Zeile. Wenn ich die Datei anschaue, bin ich nicht sicher, was ich tun kann, um zu lokalisieren, wo neue Zeilen erstellt werden sollen. Weiß jemand, wie ich das machen könnte? Es ist wichtig für mein Projekt, dass ich diese .json-Datei (Beispiel unten) nehmen kann, sie korrekt formatiert (oder zumindest in neuen Zeilen), und diese dann als Eingabe für das Skript lesen kann. Vielen Dank im VorausWie man eine .json Datei liest und in eine neue Datei schreibt, Einfügen von Zeilenumbrüchen mit Python

Beispiel 1 Die aktuelle Art und Weise die .json Datei aussieht:

{"nodes":[{"nodeID":"119927","text":"Yes, it's annoying and cumbersome to separate your rubbish properly all the time.","type":"I","timestamp":"2015-12-14 12:09:13"},{"nodeID":"119928","text":"Three different bin bags stink away in the kitchen and have to be sorted into different wheelie bins.","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119929","text":"But still Germany produces way too much rubbish","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119930","text":"and too many resources are lost when what actually should be separated and recycled is burnt.","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119931","text":"We Berliners should take the chance and become pioneers in waste separation!","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119932","text":"Default Conflict","type":"CA","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119933","text":"Default Inference","type":"RA","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119934","text":"Default Conflict","type":"CA","timestamp":"2015-12-14 12:09:14"}],"edges":[{"edgeID":"160906","fromID":"119927","toID":"119932","formEdgeID":null},{"edgeID":"160907","fromID":"119932","toID":"119931","formEdgeID":null},{"edgeID":"160908","fromID":"119928","toID":"119933","formEdgeID":null},{"edgeID":"160909","fromID":"119933","toID":"119927","formEdgeID":null},{"edgeID":"160910","fromID":"119929","toID":"119934","formEdgeID":null},{"edgeID":"160911","fromID":"119934","toID":"119932","formEdgeID":null},{"edgeID":"160912","fromID":"119930","toID":"119934","formEdgeID":null}],"locutions":[]} 

Beispiel 2 Das Format, das mein Skript mit feinen läuft:

{ 
    "nodes":[ 
     { 
      "nodeID":20, 
      "text":"Yes, it's annoying and cumbersome to separate your rubbish properly all the time.", 
      "type":"I" 
     }, 
     { 
      "nodeID":21, 
      "text":"Three different bin bags stink away in the kitchen and have to be sorted into different wheelie bins.", 
      "type":"I" 
     }, 
     { 
      "nodeID":22, 
      "text":"But still Germany produces way too much rubbish", 
      "type":"I" 
     }, 
     { 
      "nodeID":23, 
      "text":"and too many resources are lost when what actually should be separated and recycled is burnt.", 
      "type":"I" 
     }, 
     { 
      "nodeID":24, 
      "text":"We Berliners should take the chance and become pioneers in waste separation!", 
      "type":"I" 
     }, 
     { 
      "nodeID":40, 
      "text":"Default Conflict", 
      "type":"CA" 
     }, 
     { 
      "nodeID":41, 
      "text":"Default Inference", 
      "type":"RA" 
     }, 
     { 
      "nodeID":42, 
      "text":"Default Conflict", 
      "type":"CA" 
     } 
    ], 
    "edges":[ 
     { 
      "fromID":20, 
      "toID":40 
     }, 
     { 
      "fromID":40, 
      "toID":24 
     }, 
     { 
      "fromID":21, 
      "toID":41 
     }, 
     { 
      "fromID":41, 
      "toID":20 
     }, 
     { 
      "fromID":22, 
      "toID":42 
     }, 
     { 
      "fromID":42, 
      "toID":40 
     }, 
     { 
      "fromID":23, 
      "toID":42 
     } 
    ], 
    "schemefulfillments":[ 

    ], 
    "participants":[ 

    ], 
    "locutions":[ 

    ] 
} 

Jede Hilfe sehr geschätzt . Ich habe keine Zeit bis zum Ende meines Projekts, um mein gesamtes Programm komplett neu zu schreiben, also muss es auf diese Weise gemacht werden, oder eine ähnliche Methode, die kein signifikantes Umschreiben meines ursprünglichen Skripts erfordert.

+0

Bitte senden Sie den Code Sie derzeit verwenden, so dass wir keine Probleme erkennen. –

+0

Diese Formatierung ist für gültige JSON nicht erforderlich. vielleicht solltest du einen richtigen Parser verwenden, anstatt selbst zu rollen? – jonrsharpe

+3

Wenn Ihr Skript auf gültiges JSON, das nicht hübsch gedruckt ist, verschluckt wird, ist etwas sehr falsch, und Sie müssen das beheben, anstatt es hübsch zu drucken. Warum verwendet Ihr Skript keinen JSON-Parser zum Parsen von JSON? Und nur FYI, wenn dies eine Universität Aufgabe ist: Ich würde wahrscheinlich scheitern Sie für die Verwendung eines JSON-Parser, der JSON nicht analysieren kann;) – ThiefMaster

Antwort

1

Probieren Sie es aus.

Eingang:

import json 

compactJSON = """{"nodes":[{"nodeID":"119927","text":"Yes, it's annoying and cumbersome to separate your rubbish properly all the time.","type":"I","timestamp":"2015-12-14 12:09:13"},{"nodeID":"119928","text":"Three different bin bags stink away in the kitchen and have to be sorted into different wheelie bins.","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119929","text":"But still Germany produces way too much rubbish","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119930","text":"and too many resources are lost when what actually should be separated and recycled is burnt.","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119931","text":"We Berliners should take the chance and become pioneers in waste separation!","type":"I","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119932","text":"Default Conflict","type":"CA","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119933","text":"Default Inference","type":"RA","timestamp":"2015-12-14 12:09:14"},{"nodeID":"119934","text":"Default Conflict","type":"CA","timestamp":"2015-12-14 12:09:14"}],"edges":[{"edgeID":"160906","fromID":"119927","toID":"119932","formEdgeID":null},{"edgeID":"160907","fromID":"119932","toID":"119931","formEdgeID":null},{"edgeID":"160908","fromID":"119928","toID":"119933","formEdgeID":null},{"edgeID":"160909","fromID":"119933","toID":"119927","formEdgeID":null},{"edgeID":"160910","fromID":"119929","toID":"119934","formEdgeID":null},{"edgeID":"160911","fromID":"119934","toID":"119932","formEdgeID":null},{"edgeID":"160912","fromID":"119930","toID":"119934","formEdgeID":null}],"locutions":[]}""" 

dictionary = json.loads(compactJSON) 

prettyJSON = json.dumps(dictionary, indent=4, separators=(',', ': ')) 

print(prettyJSON) 

Ausgang:

{ 
    "edges": [ 
     { 
      "fromID": "119927", 
      "edgeID": "160906", 
      "formEdgeID": null, 
      "toID": "119932" 
     }, 
     { 
      "fromID": "119932", 
      "edgeID": "160907", 
      "formEdgeID": null, 
      "toID": "119931" 
     }, 
     { 
      "fromID": "119928", 
      "edgeID": "160908", 
      "formEdgeID": null, 
      "toID": "119933" 
     }, 
     { 
      "fromID": "119933", 
      "edgeID": "160909", 
      "formEdgeID": null, 
      "toID": "119927" 
     }, 
     { 
      "fromID": "119929", 
      "edgeID": "160910", 
      "formEdgeID": null, 
      "toID": "119934" 
     }, 
     { 
      "fromID": "119934", 
      "edgeID": "160911", 
      "formEdgeID": null, 
      "toID": "119932" 
     }, 
     { 
      "fromID": "119930", 
      "edgeID": "160912", 
      "formEdgeID": null, 
      "toID": "119934" 
     } 
    ], 
    "locutions": [], 
    "nodes": [ 
     { 
      "timestamp": "2015-12-14 12:09:13", 
      "nodeID": "119927", 
      "text": "Yes, it's annoying and cumbersome to separate your rubbish properly all the time.", 
      "type": "I" 
     }, 
     { 
      "timestamp": "2015-12-14 12:09:14", 
      "nodeID": "119928", 
      "text": "Three different bin bags stink away in the kitchen and have to be sorted into different wheelie bins.", 
      "type": "I" 
     }, 
     { 
      "timestamp": "2015-12-14 12:09:14", 
      "nodeID": "119929", 
      "text": "But still Germany produces way too much rubbish", 
      "type": "I" 
     }, 
     { 
      "timestamp": "2015-12-14 12:09:14", 
      "nodeID": "119930", 
      "text": "and too many resources are lost when what actually should be separated and recycled is burnt.", 
      "type": "I" 
     }, 
     { 
      "timestamp": "2015-12-14 12:09:14", 
      "nodeID": "119931", 
      "text": "We Berliners should take the chance and become pioneers in waste separation!", 
      "type": "I" 
     }, 
     { 
      "timestamp": "2015-12-14 12:09:14", 
      "nodeID": "119932", 
      "text": "Default Conflict", 
      "type": "CA" 
     }, 
     { 
      "timestamp": "2015-12-14 12:09:14", 
      "nodeID": "119933", 
      "text": "Default Inference", 
      "type": "RA" 
     }, 
     { 
      "timestamp": "2015-12-14 12:09:14", 
      "nodeID": "119934", 
      "text": "Default Conflict", 
      "type": "CA" 
     } 
    ] 
} 
Verwandte Themen