I have JSON file as mentioned below,
**test.json**
{
"header1" :
{
"header1_body1":
{
"some_key":"some_value",
.......................
},
"header1_body2":
{
"some_key":"some_value",
.......................
}
},
"header2":
{
"header2_body1":
{
"some_key":"some_value",
.......................
},
"header2_body2":
{
"some_key":"some_value",
.......................
}
}
}
希望将JSON内容分组到如下列表中:
header1 = ['header1_body1','header1_body2']
header2 = ['header2_body1','header2_body2']
header1, header2 can be till ....header n
。因此,必须创建包含其值的动态列表,如上所示。你知道吗
我怎样才能做到这一点? 最好的方法是什么?你知道吗
解决方案:
with open('test.json') as json_data:
d = json.load(json_data)
for k,v in d.iteritems():
if k == "header1" or k == "header2":
globals()['{}'.format(k)] = d[k].keys()
现在,header1
和header2
可以作为列表访问。你知道吗
for i in header1:
print i
修复json结构:
然后加载并创建列表:
提供:
加载json后,您可以通过执行以下操作来获得任何键的列表(
headers
下面的变量是加载的json的占位符)。您不需要将它转换为列表以将其作为iterable使用,而是将它包装在list(...)
中以匹配问题中的输出。你知道吗如果您需要以某种可访问的格式实际存储每个“header”dict的键列表,那么您可以创建另一个包含所需列表的字典。例如:
假设您将JSON读入一个变量
d
(可能使用json.loads),那么您可以迭代键(排序?)并用当前值的键构建列表:相关问题 更多 >
编程相关推荐