web-dev-qa-db-ja.com

Pythonを使用してJSONから値を取得する

JSON文字列から値を取得しようとしていますが、エラーが発生します。

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

しかし、データを反復処理すると、要素(latおよびlon)は提供されますが、値は提供されません。

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

戻り値:lat lon

latおよびlonの値を取得するには何をする必要がありますか? (444および555

44
BrunoVillanova

ディクショナリのキーと値の両方を反復処理する場合は、次を実行します。

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

それはあなたにどんなエラーを与えていますか?

まさにこれを行う場合:

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

次に:

data['lat']

SHOULD NOTエラーを表示します。

42

Pythonを使用して、提供された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'])
7

あなたのコードを使用して、これは私がそれをする方法です。追加のオプションを提供するだけで、答えが選択されたことがわかります。

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

このマナーでforを使用すると、値ではなくオブジェクトのキーが取得されるため、キーをインデックスとして使用して値を取得できます。

5
Destreyf

属性としてのJsonのような辞書のキー値へのアクセスを容易にするモジュールを備えたPyライブラリがあります。 https://github.com/asuiu/pyxtension 次のように使用できます。

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