当前位置: 首页 > 面试题库 >

python:读取json和循环字典

璩涛
2023-03-14
问题内容

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

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:

{   
 "webm":{
    "video": "libvp8",
    "audio": "libvorbis"   
 },   
  "h264":   {
    "video": "libx264",
    "audio": "libfaac"   
 },   
  "ogg":   {
    "video": "libtheora",
    "audio": "libvorbis"   
 }
}

这里输出:

> 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'}

问题答案:

总体看来还不错。

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

output_json = json.load(open('/tmp/output.json'))

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

您可以用于output_json.iteritems()同时遍历键和值。

for majorkey, subdict in output_json.iteritems():
    print majorkey
    for subkey, value in subdict.iteritems():
            print subkey, value

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



 类似资料:
  • 问题内容: 我想逐行读取巨大的文本文件(如果找到带有“ str”的行,则停止)。如何检查是否到达文件尾? 问题答案: 无需在python中检查EOF,只需执行以下操作: 为什么声明: 在处理文件对象时,最好使用关键字。这样做的好处是,即使在执行过程中引发了异常,文件在其套件完成后也将正确关闭。

  • 我正在为一个小项目尝试一些Java的套接字编程。我遇到了从外部进程读取无限InputStream的问题。程序进入无限循环。 我怀疑readLine()必须在EOF之前读取流。 我放了一些打印语句,我确信程序达到了while循环。 这是我的方法:

  • 问题内容: 我有关于通函的问题。 我有Rest Webservices,它会将对象返回到前端,问题是当我尝试返回具有多个引用的对象时,结果是我得到一个无限的响应,该响应会生成 这些对象是由Hibernate Code Generation自动生成的,我需要在后端使用循环引用,我只需要删除它,然后再使用Jackson将信息发送到前端即可。 控制器方法标头为: 我没有做任何明确的转换为Json的事情,

  • 我有圆形参考的问题。 我有Rest Webservices,它会将对象返回到前端,问题是当我试图返回具有多个引用的对象时,结果会得到无限的响应,从而生成 这些对象是由Hibernate代码生成自动生成的,我需要在后端有循环引用,我只需要在使用Jackson将信息发送到前端之前删除它。 控制器方法标头为: 我没有做任何明确的事情来转换为杰克逊,我是一个新手,我认为杰克逊自动解决了这个问题。

  • 本文向大家介绍python3 循环读取excel文件并写入json操作,包括了python3 循环读取excel文件并写入json操作的使用技巧和注意事项,需要的朋友参考一下 文件内容: excel内容: 代码: 结果: 补充知识:Python mysql数据 读取时间参数 for循环写入Excel文件 最近在利用Python 实现自动化表报时,有个功能是mysql的业务时间是读取模板文件的时间参

  • 问题内容: 在遍历列表的Python循环中,我们可以编写: 并巧妙地遍历列表中的所有元素。有没有办法知道循环中到目前为止我循环了多少次?例如,我要列出一个清单,在处理完10个元素之后,我想对它们进行处理。 我考虑过的替代方案可能是: 要么: 是否有更好的方法(就像)来获得到目前为止的迭代次数? 问题答案: pythonic的方法是使用: