将字典转换为具有相同键、值和布局的列表
Convert dict to list with same keys, values and layout
我正在尝试从列表中提取几个 keys/values。
我的清单:
a = [
{
"id": "1",
"system": "2",
},
{
"id": "3",
"system": "4",
}
]
现在我需要将其解析为一个函数(next 函数)并且它 returns a[current] 或者a[0]。
但现在是 a[current] 或 a[0] 一个字典。
下一步只是提取 ID 及其值。但是下面这个只有在 a 是一个列表时才有效!所以我需要将 a[current] 或 a[0] 转换成列表。下面的代码必须相同,因为它是一个函数,如果我出于多种原因无法更改它,那么我需要将字典 a 转换为列表 a .
c = list()
for data in a:
value = dict()
value["id"] = data.get("id")
c.append(value)
我卡在这里了,我尝试了几种方法,如 .keys()、.values(),但我不能再将它们放在一个列表中了。它需要是 scaleable/configurable 因为 a 会不时变化(不是 [0]["id"], ...)。目前 a[0] 看起来像这样:{'id': '1', 'system': '2'},但它需要像这样:[{'id': '1' , 'system': '2'},],我可以将其解析为我的搜索功能。
我需要一个新列表,例如 c:
c = [
{
"id": "1",
},
{
"id": "3",
}
]
代码已更新:
a = [
{
"id": "1",
"system": "2",
},
{
"id": "3",
"system": "4",
}
]
print([[value] for value in a ])
结果:
[[{'id': '1', 'system': '2'}], [{'id': '3', 'system': '4'}]]
这是一个过滤你的字典列表的函数:
def filter_dicts(key, a):
return [{key: element[key]} for element in a]
这样使用:
c = filter_dicts("id", a)
请注意,如果有没有指定键的字典,这将导致错误,这可能是也可能不是您想要的。为避免这种情况,请将 element[key]
替换为 element.get(key, None)
。
这是您的预期输出吗:
a = [
{
"id": "1",
"system": "2",
},
{
"id": "3",
"system": "4",
}
]
c = list()
for data in a:
value={}
value["id"]=data.get("id")
c.append([value])
# c.extend([value])
print(c)
# [[{'id': '1'}], [{'id': '3'}]]
# print(c) # Extend's output
# [{'id': '1'},{'id': '3'}]
或者您可以尝试单线解决方案
print([[{"id":val.get("id")}] for val in a])
# [[{'id': '1'}], [{'id': '3'}]]
或者作为您的评论,如果您只是想要
[{'id': '1', 'system': '2'},]
然后:
print([a[0]])
我正在尝试从列表中提取几个 keys/values。
我的清单:
a = [
{
"id": "1",
"system": "2",
},
{
"id": "3",
"system": "4",
}
]
现在我需要将其解析为一个函数(next 函数)并且它 returns a[current] 或者a[0]。 但现在是 a[current] 或 a[0] 一个字典。
下一步只是提取 ID 及其值。但是下面这个只有在 a 是一个列表时才有效!所以我需要将 a[current] 或 a[0] 转换成列表。下面的代码必须相同,因为它是一个函数,如果我出于多种原因无法更改它,那么我需要将字典 a 转换为列表 a .
c = list()
for data in a:
value = dict()
value["id"] = data.get("id")
c.append(value)
我卡在这里了,我尝试了几种方法,如 .keys()、.values(),但我不能再将它们放在一个列表中了。它需要是 scaleable/configurable 因为 a 会不时变化(不是 [0]["id"], ...)。目前 a[0] 看起来像这样:{'id': '1', 'system': '2'},但它需要像这样:[{'id': '1' , 'system': '2'},],我可以将其解析为我的搜索功能。
我需要一个新列表,例如 c:
c = [
{
"id": "1",
},
{
"id": "3",
}
]
代码已更新:
a = [
{
"id": "1",
"system": "2",
},
{
"id": "3",
"system": "4",
}
]
print([[value] for value in a ])
结果:
[[{'id': '1', 'system': '2'}], [{'id': '3', 'system': '4'}]]
这是一个过滤你的字典列表的函数:
def filter_dicts(key, a):
return [{key: element[key]} for element in a]
这样使用:
c = filter_dicts("id", a)
请注意,如果有没有指定键的字典,这将导致错误,这可能是也可能不是您想要的。为避免这种情况,请将 element[key]
替换为 element.get(key, None)
。
这是您的预期输出吗:
a = [
{
"id": "1",
"system": "2",
},
{
"id": "3",
"system": "4",
}
]
c = list()
for data in a:
value={}
value["id"]=data.get("id")
c.append([value])
# c.extend([value])
print(c)
# [[{'id': '1'}], [{'id': '3'}]]
# print(c) # Extend's output
# [{'id': '1'},{'id': '3'}]
或者您可以尝试单线解决方案
print([[{"id":val.get("id")}] for val in a])
# [[{'id': '1'}], [{'id': '3'}]]
或者作为您的评论,如果您只是想要
[{'id': '1', 'system': '2'},]
然后:
print([a[0]])