web-dev-qa-db-fra.com

Obtenir des valeurs de JSON en utilisant Python

Pendant que j'essaye de récupérer les valeurs d'une chaîne JSON, cela me donne une erreur:

data = json.loads('{"lat":444, "lon":555}')
return data["lat"]

Mais si j'itère sur les données, cela me donne les éléments (lat et lon), mais pas les valeurs:

data = json.loads('{"lat":444, "lon":555}')
    ret = ''
    for j in data:
        ret = ret + ' ' + j
return ret

Ce qui retourne: lat lon

Que dois-je faire pour obtenir les valeurs de lat et lon? (444 et 555)

44
BrunoVillanova

Si vous voulez parcourir les clés et les valeurs du dictionnaire, procédez comme suit:

for key, value in data.items():
    print key, value
81
Lior

Quelle erreur vous donne-t-il?

Si vous faites exactement ceci:

data = json.loads('{"lat":444, "lon":555}')

Ensuite:

data['lat']

NE DEVRAIT PAS vous donner une erreur du tout.

42
Pablo Santa Cruz

Utiliser Python pour extraire une valeur du fichier Json fourni

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'])
7
Sireesh Yarlagadda

En utilisant votre code, voici comment je le ferais. Je sais qu'une réponse a été choisie, donnant simplement des options supplémentaires.

data = json.loads('{"lat":444, "lon":555}')
    ret = ''
    for j in data:
        ret = ret+" "+data[j]
return ret

Lorsque vous utilisez for dans ce manoir, vous obtenez la clé de l'objet, pas la valeur, afin que vous puissiez obtenir la valeur, en utilisant la clé comme index.

5
Destreyf

Il y a une bibliothèque Py qui a un module qui facilite l'accès aux valeurs-clés du dictionnaire de type Json en tant qu'attributs: https://github.com/asuiu/pyxtension Vous pouvez l'utiliser comme:

j = Json('{"lat":444, "lon":555}')
j.lat + ' ' + j.lon
5
asu