JSON在Python中解析元素中的元素
我从一个网站的API抓取了一个JSON文本:JSON在Python中解析元素中的元素,python,json,parsing,web-scraping,Python,Json,Parsing,Web Scraping,我从一个网站的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 wjd
{"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的正确方法是什么?wjdata['product']['made']['Taiwan']有效您正在索引一个没有的数组。 JSON如下所示:
{
"result":"true",
"product": {
"made": {
"Taiwan":"Taipei",
"HongKong":"KongStore",
"Area":"Asia"
}
}
}
并且上面的代码不包含数组
假设JSON结构如下所示:
{
"result":"true",
"product": {
"made": [
{"Taiwan":"Taipei"},
{"HongKong":"KongStore"},
{"Area":"Asia"}
]
}
}
#... 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'
通过简单查看json包的文档页面,我发现了以下转换表:
它告诉我们一个JSON对象转换成dict,dict有一个名为keys的方法,该方法返回一个键列表
我建议你试试这样:
{
"result":"true",
"product": {
"made": [
{"Taiwan":"Taipei"},
{"HongKong":"KongStore"},
{"Area":"Asia"}
]
}
}
#... 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'
我还没有测试过上面的代码,但我想你在这里得到了要点:)
wjdata['product']['made']['Taiwan']
?@Rakesh我得到了以下错误:TypeError:字符串索引必须是整数如果没有上下文,错误是毫无意义的,请发布完整的错误消息并打印您收到的确切json。实际上,他并没有收到json,他收到的是字典的字符串@xiholac761请检查我的帖子,很遗憾,它导致了一个错误:TypeError:字符串索引必须是整数。您是在尝试加载动态数据(使用多个键)还是只获取Taiwan键只是Taiwan键。您是对的,没有数组。是否可以从json数据中解析“Taipei”并打印出来?