python/由于keys重复导致字典dict在调用update函数时被覆盖

一、连接两个dict

aaa = {'question_type': 'What is the overall condition of the given image?', 'multiple_choice_answer': 'flooded', 'answers': [{'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '1'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '2'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '3'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '4'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '5'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '6'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '7'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '8'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '9'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '10'}], 'image_id': '10165', 'answer_type': 'Condition_Recognition', 'question_id': '10165000'}
bbb = {'question_type': 'What is the overall condition of the given image?', 'multiple_choice_answer': 'flooded', 'answers': [{'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '1'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '2'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '3'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '4'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '5'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '6'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '7'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '8'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '9'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '10'}], 'image_id': '10166', 'answer_type': 'Condition_Recognition', 'question_id': '10166000'}
aaa.update(bbb)
print(aaa)

输出是:
{‘question_type’: ‘What is the overall condition of the given image?’, ‘multiple_choice_answer’: ‘flooded’, ‘answers’: [{‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘1’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘2’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘3’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘4’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘5’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘6’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘7’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘8’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘9’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘10’}], ‘image_id’: ‘10166’, ‘answer_type’: ‘Condition_Recognition’, ‘question_id’: ‘10166000’}
.
调用update函数时,两个dict并没有连接起来,奇怪了好久,发现是key重复导致原来的dict被新的dict覆盖了。

aaa = {'question_type1': 'What is the overall condition of the given image?', 'multiple_choice_answer1': 'flooded', 'answers1': [{'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '1'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '2'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '3'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '4'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '5'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '6'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '7'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '8'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '9'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '10'}], 'image_id1': '10165', 'answer_type1': 'Condition_Recognition', 'question_id1': '10165000'}
bbb = {'question_type': 'What is the overall condition of the given image?', 'multiple_choice_answer': 'flooded', 'answers': [{'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '1'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '2'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '3'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '4'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '5'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '6'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '7'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '8'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '9'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '10'}], 'image_id': '10166', 'answer_type': 'Condition_Recognition', 'question_id': '10166000'}
aaa.update(bbb)
print(aaa)

我把aaa中每个key后面多加了一个“1”,果然连起来了。

输出:{‘question_type1’: ‘What is the overall condition of the given image?’, ‘multiple_choice_answer1’: ‘flooded’, ‘answers1’: [{‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘1’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘2’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘3’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘4’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘5’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘6’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘7’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘8’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘9’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘10’}], ‘image_id1’: ‘10165’, ‘answer_type1’: ‘Condition_Recognition’, ‘question_id1’: ‘10165000’, ‘question_type’: ‘What is the overall condition of the given image?’, ‘multiple_choice_answer’: ‘flooded’, ‘answers’: [{‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘1’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘2’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘3’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘4’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘5’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘6’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘7’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘8’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘9’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘10’}], ‘image_id’: ‘10166’, ‘answer_type’: ‘Condition_Recognition’, ‘question_id’: ‘10166000’}
.

二、连接两个list

如果想要两个dict虽然keys相同,但要并列地连接起来,可以用list将他们括起再连接:
例子:

aaa = [{'question_type': 'What is the overall condition of the given image?', 'multiple_choice_answer': 'flooded', 'answers': [{'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '1'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '2'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '3'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '4'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '5'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '6'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '7'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '8'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '9'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '10'}], 'image_id': '10165', 'answer_type': 'Condition_Recognition', 'question_id': '10165000'}]
bbb = [{'question_type': 'What is the overall condition of the given image?', 'multiple_choice_answer': 'flooded', 'answers': [{'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '1'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '2'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '3'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '4'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '5'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '6'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '7'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '8'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '9'}, {'answer': 'flooded', 'answer_confidence': 'yes', 'answer_id': '10'}], 'image_id': '10166', 'answer_type': 'Condition_Recognition', 'question_id': '10166000'}]
print(aaa+bbb)

输出为:
[{‘question_type’: ‘What is the overall condition of the given image?’, ‘multiple_choice_answer’: ‘flooded’, ‘answers’: [{‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘1’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘2’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘3’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘4’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘5’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘6’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘7’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘8’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘9’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘10’}], ‘image_id’: ‘10165’, ‘answer_type’: ‘Condition_Recognition’, ‘question_id’: ‘10165000’}, {‘question_type’: ‘What is the overall condition of the given image?’, ‘multiple_choice_answer’: ‘flooded’, ‘answers’: [{‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘1’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘2’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘3’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘4’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘5’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘6’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘7’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘8’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘9’}, {‘answer’: ‘flooded’, ‘answer_confidence’: ‘yes’, ‘answer_id’: ‘10’}], ‘image_id’: ‘10166’, ‘answer_type’: ‘Condition_Recognition’, ‘question_id’: ‘10166000’}]

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值