2017-06-05 4 views
0

Ich habe eine JSON-Datei, und ich versuche, auf den Wert zuzugreifen, aber ich halte einen Fehler erhalten, die sagt: „Typeerror: String-Indizes ganze Zahlen sein müssen, nicht str“Zugriff auf Json Python-Werte

Dies ist die Json Daten.

{'sentiment': '{\n "0": {\n "comment": "Chibok schoolgirls were swapped for 5 Boko Haram commanders \n "username": "@NigeriaNewsdesk:, @todayng", \n "score": 0.0\n }\n}'} 

data = val [ 'Stimmung'] Druckdaten gibt diese zurück zu mir

{ 
"0": { 
    "comment": "Chibok schoolgirls were swapped for 5 Boko Haram commanders", 
    "username": "@NigeriaNewsdesk:, @todayng", 
    "score": 0.0 
} 
} 

Aber wenn ich versuche, die Schlüssel/Wert-Paare zuzugreifen, erhalte ich einen Fehler für Datensätze in Daten: print (records [ "0"] [ "username"])

TypeError: string indices must be integers, not str 

Jede Idee, warum ich diese Fehler immer bin? Danke

+0

Was ist 'records'? Ich glaube du willst 'print (data [" 0 "] [" username "])'. – ILostMySpoon

+0

Erstens ist der Wert von "Sentiment" Schlüssel Zeichenfolge und kein Diktatobjekt. Zweitens ist es nicht einmal eine gültige JSON-Zeichenfolge. Sie sollten die Logik, in der Sie diesen Wert speichern, korrigieren. Wahrscheinlich speichern Sie es als ein Dict oder mindestens als gültige JSON-String –

Antwort

5

In der JSON, die Sie gepostet haben, speichert sentiment eine JSON-Zeichenfolge, kein JSON-Objekt. Sie müssen den JSON parsen - z. json.loads(val['sentiment']) oder speichern Sie den JSON als JSON-Objekt.

+0

wird es nicht funktionieren, weil der * so genannte * JSON-String in der Frage erwähnt hat falsches Format –