Getting values from JSON using Python

2019-01-14 00:53发布

While I am trying to retrieve values from JSON string, it gives me an error:

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

But, if I iterate over the data, it gives me the elements (lat and lon), but not the values:

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

Which returns: lat lon

What do I need to do to get the values of lat and lon? (444 and 555)

5条回答
爷的心禁止访问
2楼-- · 2019-01-14 01:21

What error is it giving you?

If you do exactly this:

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

Then:

data['lat']

SHOULD NOT give you any error at all.

查看更多
ら.Afraid
3楼-- · 2019-01-14 01:35

If you want to iterate over both keys and values of the dictionary, do this:

for key, value in data.items():
    print key, value
查看更多
放我归山
4楼-- · 2019-01-14 01:36

Using Python to extract a value from the provided 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'])
查看更多
Ridiculous、
5楼-- · 2019-01-14 01:43

There's a Py library that has a module that facilitates access to Json-like dictionary key-values as attributes: https://github.com/asuiu/pyxtension You can use it as:

j = Json('{"lat":444, "lon":555}')
j.lat + ' ' + j.lon
查看更多
三岁会撩人
6楼-- · 2019-01-14 01:44

Using your code, this is how I would do it. I know an answer was chosen, just giving additional options.

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

When you use for in this manor you get the key of the object, not the value, so you can get the value, by using the key as an index.

查看更多
登录 后发表回答