2017-07-11 1 views
0

analysieren. Unten ist mein Beispiel JSON. Ich versuche, "Attribute" Teil des JSON zu extrahieren und in eine relationale Datenbank einzufügen. Aber ich musste "Name" -Werte als relationale Spalten konstruieren und "Wert" -Werte in die Tabelle einfügen. Ich meine {"Name": "ID", "Wert": "528BE6D9FD"} "ID" als Spalte und fügen Sie 528BE6D9FD unter der "ID" ein. Es ist nur der Anfang meines Python-Lernens, also nicht sicher, wie man Spalten aus Wörterbuchwerten konstruiert.Wie nestead json analysieren und relationale Datenbankspalten von dict-Werten mithilfe von Python

d = 'C:/adapters/sample1.json' 
json_data = open(d).read() 
json_file = json.loads(json_data) 
for children in json_file["events"]: 
    #print (children) 
    for grandchildren in children["attributes"]: 
     #print(grandchildren) 
     for key, value in grandchildren.iteritems(): 
       #if key == 'name': 
        print value 



{ 
    "events":[ 
     { 
     "timestamp":"2010-11-20T11:08:00.978Z", 
     "code":"Event", 
     "namespace":null, 
     "version":null, 
     "attributes":[ 
      { 
       "name":"ID", 
       "value":"528BE6D9FD" 
      }, 
      { 
       "name":"Total", 
       "value":67 
      }, 
      { 
       "name":"PostalCode", 
       "value":"6064" 
      }, 
      { 
       "name":"Category", 
       "value":"More" 
      }, 
      { 
       "name":"State", 
       "value":"QL" 
      }, 
      { 
       "name":"orderDateTime", 
       "value":"2010-07-20T12:08:13Z" 
      }, 
      { 
       "name":"CategoryID", 
       "value":"1091" 
      }, 
      { 
       "name":"billingCountry", 
       "value":"US" 
      }, 
      { 
       "name":"shipping", 
       "value":"Go" 
      }, 
      { 
       "name":"orderFee", 
       "value":77 
      }, 
      { 
       "name":"Name", 
       "value":"Roy" 
      } 
     ] 
     } 
    ] 
} 
+0

Welches Datenbanksystem verwenden Sie? – flevinkelming

+0

@flevinkelming versucht, in db2 einzufügen – Ray

Antwort

0

Soweit die attributes Hash Ihrer JSON-Daten zu extrahieren, würde ich das tun, wie so:

json_path = "c:\\adapters\\sample1.json" 
with open(json_path) as json_file: 
    json_dict = json.load(json_file) 

attributes = json_dict['events'][0]['attributes'] 

Nun, ich weiß nicht, welches Datenbanksystem Sie verwenden, aber egal,

names = [key['name'] for key in attributes] 
values = [key['value'] for key in attributes] 

und jetzt nur eine Tabelle erstellen, wenn nötig, names als Spaltenüberschriften einzufügen, und legen Sie: Sie können wie so Namen und Werte mit Listenkomprehensionen extrahierenals eine einzige Reihe in Bezug auf names.

Verwandte Themen