JSON在Python中解析元素中的元素

2024-05-15 02:32:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个网站的API抓取了一个JSON文本:

{"result":"true","product":{"made":{"Taiwan":"Taipei","HongKong":"KongStore","Area":"Asia"}}}

我想占领“台湾”和“台北”,但总是失败。你知道吗

这是我的密码:

import json
weather = urllib2.urlopen('url')
wjson = weather.read()
wjdata = json.loads(wjson)
print wjdata['product']['made'][0]['Taiwan']

我总是会遇到以下错误: 关键字0错误

解析json的正确方法是什么?你知道吗


Tags: 文本apijsontrue网站错误resultproduct
2条回答

wjdata[“产品”][“制造”][“台湾”]作品

您正在索引一个没有的数组。 JSON如下所示:

{ 
    "result":"true",
    "product": {
        "made": {
            "Taiwan":"Taipei",
            "HongKong":"KongStore",
            "Area":"Asia"
        }
    }
}

上面没有数组。你知道吗

假设JSON结构如下:

{ 
    "result":"true",
    "product": {
        "made": [
            {"Taiwan":"Taipei"},
            {"HongKong":"KongStore"},
            {"Area":"Asia"}

        ]            
    }
}

从json包的doc页面中,我发现了这个转换表:Conversion table using json.loads

它告诉我们一个JSON对象转换成dict,dict有一个名为keys的方法,它返回一个键列表。你知道吗

我建议你试试这样:

#... omitted code
objectKeys = wjdata['product']['made'].keys()

# You should now have a list of the keys stored in objectKeys.
for key in objectKeys:
    print key
    if key == 'Taiwan':
        print 'Eureka'

我还没有测试过上面的代码,但我想你已经明白了要点:)

相关问题 更多 >

    热门问题