抱歉没有仔细使用break and continue,整个逻辑都改变了,只是用break替换了continue,很抱歉在没有清除基本面的情况下发布。
我已阅读此解决方案,但不明白。
背景:我正在开发 Odoo 框架,并进行 api 调用,在字典列表中获得响应。
响应列表非常大,我只想通过创建新的字典列表将其添加到数据库中。
但是当我调用更新函数时,它会再次添加值,所以我想检查该 id 是否唯一存在然后跳过追加,否则将该值添加到列表中。
api响应是这样的:
rooms_list = [
{
"id": 1,
"name": "A",
"rates": "dictA"
},
{
"id": 2,
"name": "B",
"rates": "dictB"
},
{
"id": 3,
"name": "C",
"rates": "dictC"
},
]
我当前的列表最初的值很少:
new_list = [
{
"id": 1,
"name": "A"
},
{
"id":2,
"name":"B"
}
]
现在,它应该只将最后一个字典添加到列表中,但它会添加冗余值,我在哪里犯错了?
我的整个代码如下:
print("new_list initially is => ", new_list)
one_record = {}
for i in rooms_list:
for j in new_list:
one_record = {}
print("j is ", j)
if j["id"] == i["id"]:
print("escape this record because it exist already in our new_list")
continue
else:
print("else add it in our new_list")
one_record["id"] = i["id"],
one_record["name"] = i["name"],
if one_record != {}:
print("one_record is not empty for j =>", j)
new_list.append(one_record)
print("rooms_list is ", rooms_list)
print("new_list is ", new_list)
输出如下:
('rooms_list is ', [{'rates': 'dictA', 'id': 1, 'name': 'A'}, {'rates': 'dictB', 'id': 2, 'name': 'B'}, {'rates': 'dictC', 'id': 3, 'name': 'C'}])
('new_list is ', [{'id': 1, 'name': 'A'}, {'id': 2, 'name': 'B'}, {'id': (1,), 'name': ('A',)}, {'id': (2,), 'name': ('B',)}, {'id': (3,), 'name': ('C',)}])
截屏
如何添加没有多余的新词典id?
达令说
慕莱坞森
阿晨1998
相关分类