2017-01-10 8 views
1

Ich muss nur einige Felder wie PublicIpAddress und PrivateIpAddress speichern, während alles andere in einer großen JSON-Datei auslassen. Wie kann ich das in Python machen, gibt es native "jq" -ähnliche Funktionalität? Vielen Dank im Voraus.Wie json Daten filtern

[ 
     { 
     "EbsOptimized": false, 
     "LaunchTime": "2017-01-10T12:19:30+00:00", 
     "PublicIpAddress": "54.229.28.216", 
     "PrivateIpAddress": "172.31.2.152" 
     }, 
     { 
     "EbsOptimized": false, 
     "LaunchTime": "2017-01-10T12:19:30+00:00", 
     "PublicIpAddress": "54.229.28.217", 
     "PrivateIpAddress": "172.31.2.153" 
     } 
    ] 

Edit: Ich muss dies in einem Python-Skript, nicht außerhalb der Python-Umgebung.

+0

Sie http versuchen könnte: [ObjectPath] (// objectpath.org/) –

+0

Nicht sicher Objektpfad, bin ich zu Python neu. Ich muss nur wenige Sohnfelder aus einer Datei herausfiltern. – user1619524

+0

Nun Python hat seine eigene [JSON-Bibliothek] (https://docs.python.org/2/library/json.html) –

Antwort

1

Try this -

import json 
json_data = '[ 
      { 
      "EbsOptimized": false, 
      "LaunchTime": "2017-01-10T12:19:30+00:00", 
      "PublicIpAddress": "54.229.28.216", 
      "PrivateIpAddress": "172.31.2.152" 
      }, 
      { 
      "EbsOptimized": false, 
      "LaunchTime": "2017-01-10T12:19:30+00:00", 
      "PublicIpAddress": "54.229.28.217", 
      "PrivateIpAddress": "172.31.2.153" 
      } 
     ]' 
dict = json.loads(json_data) 
for data in dict: 
    print(data['PublicIpAddress']) 
+0

Nicht sicher, ob ich meine Frage richtig formuliert habe, brauche ich: jsonOutput = select publicIpAadress, privateIpaddress von json_input_file. Die 2 Felder dienen als Referenz, die in der endgültigen Ausgabe enthalten sein müssen, während andere verworfen werden. – user1619524

+0

Dafür müssen Sie noch durch das JSON gehen, das in das Wörterbuch geladen ist, wie ich in meiner Antwort erwähnt habe ... parse die genauen Felder und erstelle einen neuen Wörterbuchsatz entsprechend ... danach ist der nächste Schritt das Konvertieren dieses Wörterbuchergebnissatzes in JSON mit dem Befehl json.dumps (result_set) –