我正在尝试迭代字典列表并获取 2 个键的值,并将这些值写入另一个具有另一个键的字典列表。下面是我试图写入的输出列表。
post_obj = [
{
"city": place["place"],
"display": place["seq"]
}
]
输入:
data = [
{'place': 'San Jose', 'seq': 1},
{'place': 'San Diego', 'seq': 2},
{'place': 'San Fransisco', 'seq': 3}
]
代码:
post_obj = []
if len(data) > 0:
for id in data:
post_obj = [
{
"city": id["place"],
"display": id["seq"]
}
]
else:
post_obj["areas"] = []
输出:
[{'cityName': 'Inline', 'displayOrder': 3}]
预期输出:
[{'cityName': 'San Jose', 'displayOrder': 1}, {'cityName': 'San Diego', 'displayOrder': 2}, {'cityName': 'San Fransisco', 'displayOrder': 3}]
我不知道我错过了什么,但我我无法获取列表中的前 2 个城市。任何帮助或意见表示赞赏。谢谢你!
的代码的问题在于在循环的每次迭代中都在
替换
post_obj
列表,而不是向其添加字典。这就是为什么只看到最后一个字典的原因,因为它是最后添加的字典。
这是更正后的代码:
data = [
{'place': 'San Jose', 'seq': 1},
{'place': 'San Diego', 'seq': 2},
{'place': 'San Fransisco', 'seq': 3}
]
post_obj = []
if len(data) > 0:
for id in data:
post_obj.append( # 使用 append 将每个字典添加到列表中
{
"city": id["place"],
"display": id["seq"]
}
)
else:
post_obj["areas"] = []
print(post_obj)
此代码将迭代
data
列表,为每个条目创建一个新字典,然后使用
append
方法将该字典添加到
post_obj
列表中。
此代码的输出将是的预期输出:
[{'city': 'San Jose', 'display': 1}, {'city': 'San Diego', 'display': 2}, {'city': 'San Fransisco', 'display': 3}]
标签:python,list,dictionary
From: 78845504