Python中文
首页
教程
问答
标签
搜索
登录
注册
python迭代json文件,其中json结构和键值未知
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>考虑下面的示例JSON。在</p> <pre><code>{ "widget": { "test": "on", "window": { "title": "myWidget1", "name": "main_window" }, "image": { "src": "Images/wid1.png", "name": "wid1" } }, "os":{ "name": "ios" } </code></pre> <p>}</p> <p>考虑一下我们不知道JSON和任何键的结构的情况。我需要实现的是一个python函数,它遍历所有键和子键并打印键。也就是说,通过只知道JSON文件名,我应该能够迭代整个键和子键。JSON可以是任何结构。什么我试过的如下。在</p> ^{pr2}$ <p>这里,iterateAllKeys()函数应该打印JSON文件中存在的所有键。但如果只存在外环</p> <pre><code>def iterateAllKeys(e): for key in e.iterkeys(): print key </code></pre> <p>它将打印键“widget”和“os”。但是</p> <pre><code>def iterateAllKeys(e): for key in e.iterkeys(): print key for child in key.get(key): iterateAllKeys(child) </code></pre> <p>返回错误-AttributeError:“unicode”对象没有属性“get”。我的理解是-因为'child'的值不是dict对象,我们不能应用'钥匙。得到()'. 但是有没有其他方法可以在不指定任何键名的情况下迭代JSON文件。谢谢您。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您可以使用递归来迭代多级字典,如下所示:</p> <pre><code>def iter_dict(dic): for key in dic: print(key) if isinstance(dic[key], dict): iter_dict(dic[key]) </code></pre> <p>第一个字典的键被迭代,每个键都被打印出来,如果条目是dict类的一个实例,我们可以使用递归来迭代我们遇到的字典作为条目。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
当用户用PYTHON设置一个或一个不带值的URL时,他们怎么能输入一个/a的代码呢?
9 回答
当用户登录到站点时,如何显示不同的导航栏
4 回答
当用户登录时,在Flask中向用户显示处理结果
1 回答
当用户的Flask会话结束时,我如何从Redis后端中移除所有Celery结果?
8 回答
当用户的Okta配置文件字段当前为blan时,更新该字段
10 回答
当用户的付款逾期2天时,从Django模型检索数据
7 回答
当用户的消息以问号结尾时,如何让机器人说些什么?
2 回答
当用户的系统上可能也安装了Python 2.7时,如何在用户的系统上运行Python 3脚本?
1 回答
当用户确定打印数量时,使用Matplotlib打印动画
5 回答
当用户离开时是否可以删除整个网页?
8 回答
当用户给出一个单词时如何打印?
10 回答
当用户继续更改TKin中的值(使用trace方法)时,使用Entry并更新输入的条目
7 回答
当用户编辑表单字段时,从Django时间字段中删除秒数
9 回答
当用户被更改时,消息不会来自web套接字
1 回答
当用户访问表单时,如何使表单为只读,而不具有更改权限
6 回答
当用户试图更改对象的值时,使用描述符类引发RuntimeError
4 回答
当用户调整GUI的大小时,是否有方法更改GUI内容的大小?
4 回答
当用户调整风的大小时,pythontkinter小部件的大小会不均匀
7 回答
当用户购买某个类别时,是否查找其他类别的销售?
4 回答
当用户转到上一页时,Django和芹菜插入操作
5 回答