Beim Versuch, Werte aus der JSON-Zeichenfolge abzurufen, wird ein Fehler angezeigt:
data = json.loads('{"lat":444, "lon":555}')
return data["lat"]
Wenn ich jedoch über die Daten iteriere, erhalte ich die Elemente ( lat
und lon
), aber nicht die Werte:
data = json.loads('{"lat":444, "lon":555}')
ret = ''
for j in data:
ret = ret + ' ' + j
return ret
Welches kehrt zurück: lat lon
Was muss ich tun, um die Werte von lat
und zu erhalten lon
? ( 444
und 555
)
python
json
simplejson
BrunoVillanova
quelle
quelle
' '.join(data)
Antworten:
Wenn Sie sowohl Schlüssel als auch Werte des Wörterbuchs durchlaufen möchten, gehen Sie folgendermaßen vor:
for key, value in data.items(): print key, value
quelle
Welchen Fehler gibt es Ihnen?
Wenn Sie genau das tun:
data = json.loads('{"lat":444, "lon":555}')
Dann:
data['lat']
SOLLTE KEINEN Fehler geben.
quelle
Verwenden von Python zum Extrahieren eines Werts aus dem bereitgestellten Json
Working sample:- import json import sys //load the data into an element data={"test1" : "1", "test2" : "2", "test3" : "3"} //dumps the json object into an element json_str = json.dumps(data) //load the json to a string resp = json.loads(json_str) //print the resp print (resp) //extract an element in the response print (resp['test1'])
quelle
Es gibt eine Py-Bibliothek mit einem Modul, das den Zugriff auf Json-ähnliche Wörterbuchschlüsselwerte als Attribute erleichtert: https://github.com/asuiu/pyxtension Sie können es verwenden als:
j = Json('{"lat":444, "lon":555}') j.lat + ' ' + j.lon
quelle
Mit Ihrem Code würde ich das so machen. Ich weiß, dass eine Antwort gewählt wurde, die nur zusätzliche Optionen bietet.
data = json.loads('{"lat":444, "lon":555}') ret = '' for j in data: ret = ret+" "+data[j] return ret
Wenn Sie in diesem Herrenhaus für verwenden, erhalten Sie den Schlüssel des Objekts, nicht den Wert, sodass Sie den Wert erhalten können, indem Sie den Schlüssel als Index verwenden.
quelle