首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python:读取json和循环字典

python:读取json和循环字典
EN

Stack Overflow用户
提问于 2018-12-07 02:50:22
回答 2查看 0关注 0票数 0

我正在学习python,我循环这样json转换为字典:它工作,但这是正确的方法吗?谢谢

代码语言:javascript
复制
import json

output_file = open('output.json').read()
output_json = json.loads(output_file)

for i in output_json:
        print i
        for k in output_json[i]:
                print k, output_json[i][k]

print output_json['webm']['audio']
print output_json['h264']['video']
print output_json['ogg']

这里是JSON:

代码语言:javascript
复制
{   
 "webm":{
    "video": "libvp8",
    "audio": "libvorbis"   
 },   
  "h264":   {
    "video": "libx264",
    "audio": "libfaac"   
 },   
  "ogg":   {
    "video": "libtheora",
    "audio": "libvorbis"   
 }
}

这里输出:

代码语言:javascript
复制
> h264 
audio libfaac video libx264 
ogg
> audio libvorbis video libtheora webm
> audio libvorbis video libvp8 libvorbis
> libx264 {u'audio': u'libvorbis',
> u'video': u'libtheora'}
EN

回答 2

Stack Overflow用户

发布于 2018-12-07 11:42:32

json_data = json.loads(url)

如果列表在那里,那么迭代:

代码语言:javascript
复制
 for majorkey, subdict in json_data.iteritems():
   for one_majorkey in subdict:
    for subkey, value in one_majorkey.iteritems():
        for each_subkey, valu_U in value.iteritems():
            for each_sub_subkey, value_Q in valu_U.iteritems():
                for each_sub_sub_subkey, value_num in value_Q.iteritems():
                    print each_sub_sub_subkey, value_num
票数 0
EN

Stack Overflow用户

发布于 2018-12-07 12:41:58

无需先读取文件,然后使用加载。您可以直接使用负载。

代码语言:javascript
复制
output_json = json.load(open('/tmp/output.json'))

使用i和k对此不正确。它们通常只应用于整数循环计数器。在这种情况下,它们是关键,所以更合适的东西会更好。也许重命名icontainerk作为stream?传达更多信息的东西将更容易阅读和维护。

您可以使用output_json.iteritems()同时迭代键和值。

代码语言:javascript
复制
for majorkey, subdict in output_json.iteritems():
    print majorkey
    for subkey, value in subdict.iteritems():
            print subkey, value

请注意,使用Python 3时,您需要使用items()而不是iteritems(),因为它已被重命名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档