我有下面的JSON数组;
"json_array": [
{
"key": "k1",
"value": "v1"
},
{
"key": "k2",
"value": "v2"
}
]
需要将值列为v1、v2。
目前,我可以分别列出键和值,如下所示,但作为一个整体,而不是单独列出:
k1:v1 k2:v2
或
k1 k2
或
v1 v2
我试着得到这样的东西:但我不确定如何进行迭代,比如我只需要打印一个值,要么是v1,要么是v2。如果有人能帮我解决Python 3中的逻辑问题,那就太好了。
编辑代码:
json_array = [
[
{
"key": "k1",
"value": "v1"
},
{
"key": "k1",
"value": "v2"
}
],
[
{
"key": "k1",
"value": "v3"
},
{
"key": "k2",
"value": "v4"
}
],
[
{
"key": "k2",
"value": "v5"
},
{
"key": "k3",
"value": "v6"
}
]
]
itemcount = 0
for item in json_array:
print(item)
values = []
for kv in item:
if 'value' in kv:
values.append(kv['value'])
print(', '.join([kv['key']] + values))
输出:
[{'key': 'k1', 'value': 'v1'}, {'key': 'k1', 'value': 'v2'}]
k1, v1, v2
[{'key': 'k1', 'value': 'v3'}, {'key': 'k2', 'value': 'v4'}]
k2, v3, v4
[{'key': 'k2', 'value': 'v5'}, {'key': 'k3', 'value': 'v6'}]
k3, v5, v6
预期输出:
k1, v1, v2, v3
k2, v4, v5
k3, v6
1条答案
按热度按时间h22fl7wq1#
你可以这样做:
这会给予你这样的输出:
如果你只想输出
v1, v2
,你可以这样做:我们在这里做什么?**
我们循环遍历列表中的每一项。每一个条目都是一本字典。我们询问字典是否具有'value'属性。如果有,我们将其添加到列表中。
最后,我们用','分隔符连接列表。
您可以将其变形为您想要的任何输出。希望这能让你开始。
编辑
如果你有一个嵌套的列表/数组怎么办?
结果将是:
编辑2
如果一行需要v1、v2,另一行需要v3、v4
您可以使用稍微修改的代码在一行中打印v1、v2,在另一行中打印v3、v4。
结果将是:
看来楼主已经想通了;干得好。
编辑3
如果我们想要key,value 1,value 2,...?
将导致: