繁体   English   中英

如何从json提取单个值?

[英]How to extract single value from json?

我正在使用simplejson

try:
    import json
except ImportError:
    import simplejson as json

def query_reviews (query):
    url = "http://......."
    response = urllib2.urlopen(url) 
    values=json.loads(response)

现在我想从输出中取出特定的值。

那我该怎么办呢? 我已经进行了很多搜索,但仍未解决问题。请帮助我。

这取决于json格式

如果它是一个数组,这将工作

try:
import json
import urllib2
except ImportError:
    import simplejson as json

def query_reviews ():
    url = "https://raw.githubusercontent.com/twitter/typeahead.js/gh-pages/data/countries.json"
    response = urllib2.urlopen(url)
    values=json.loads(response.read())
    needle = 'Yemen'
    for value in values:
        if value == needle:
            print 'Found it!'
            print value

query_reviews()

如果是字典,请使用values ['key'],如下所示:

try:
    import json
    import urllib2
except ImportError:
    import simplejson as json

def query_reviews ():
    url = "https://raw.githubusercontent.com/Bitergia/apache-cloudstack-dashboard/master/data/json/-its-dom-top-closers.json"
    response = urllib2.urlopen(url)
    values=json.loads(response.read())
    print values['id']

query_reviews()

我完全取决于您加载的JSON。 如果是字典,则将值导入到Python字典中。

# JSON is {"game": "pacman", "year": 1988, "highscore": 123456}
print values['highscore']

如果您具有复杂的层次结构,那将是一个命令。

# JSON is {"games": {"pacman": {"year": 1988, "highscore": 123456}},
#                   {"defender": {"highscore": 345798, "year": 1983}}, ...
print values['games']['pacman']['highscore']

如果涉及列表,则只需索引。

# JSON is [ {"game": "pacman", "year": 1988, "highscore": 123456},
#           {"game:" "defender", "highscore": 345678", "year": 1983}, ...
print values[0]['highscore']

其他答案很好。 它可能有助于开始

pprint.pprint(values)  # after 'import pprint'

...,这将向您显示所获取的数据是什么样的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM