gpt4 book ai didi

json - 获取JSON对象python的 child

转载 作者:行者123 更新时间:2023-12-02 17:23:25 25 4
gpt4 key购买 nike

我正在尝试在 python 2.7 中解析一些 json 数据,但不知道如何获取子元素。

对象结构是这样的:

{
"35": {
"num": 1,
"name": "Discovery",
"stream_type": "live",
"stream_id": "35"
},
"13085": {
"num": 2,
"name": "Discovery HD",
"stream_type": "live",
"stream_id": "13085"
},
"36": {
"num": 3,
"name": "Discovery Investigation",
"stream_type": "live",
"stream_id": "36"
},
"151": {
"num": 4,
"name": "Discovery Turbo",
"stream_type": "live",
"stream_id": "151"
}

}

我使用 urllib2 从 url 加载它,然后使用 for 循环对其进行迭代:

> import urllib2,json
>
> data = urllib2.urlopen("http://someurl.eu/json.php") data =
> data.read().decode("utf-8") channels = json.loads(data)
>
> for channel in channels:
> print channel #prints the id's

但我如何更进一步呢?

如果我尝试:

for channel in channels:
print channel #prints the id's
print channel['name'] #trying to get name

然后我得到:

TypeError: string indices must be integers

我认为它需要类似 print channel[0] 的东西,但它只会打印 id 的第一个索引。

我也尝试过其他方法,但我从来没有成功过,任何人都可以解释一下,应该怎么做?

最佳答案

For channel in channels 遍历字典键。

您可以遍历值而不是键:

for channel in channels.values():
print channel # prints the entire channel
print channel['name'] # prints name

或遍历键但访问字典中的数据:

for channel in channels:
print channel # prints the id
print channels[channel]['name'] # prints name

关于json - 获取JSON对象python的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40847029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com