python字典的key可以重复吗?
开发环境: centOS python2.7 Django框架
今天调试web网站时,前端以ajax的post发出请求, 后端以json格式返回字典
applist = {'0':[], '1':[], '2':[], '3':[], '4':[], '5':[]}
读取用户应用列表,切割成数组赋值给字典applist,以json返回给前端
for appitem in myapplist:
tmplist = []
if appitem.allapp != '':
tmplist = appitem.allapp.split('_')
applist[appitem.position] = tmplist
return JsonResponse({'ret':0,'content':applist})
前端收到的结果:
{"content": {"3": ["1"], "1": [], "0": [], "3": [], "2": [], "5": [], "4": []}, "ret": 0}
居然有两个key是"3"~ 虽然我刚学python,但也不能欺负我啊~
求各位科普
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
字符串
"3"
和数字3
是不同的key哦,序列化成标准json格式字符串之后所有的key都会转化为str这个地方是蛮容易出问题的。Python中,键是unique的,但键可以有不同的类型,如xelz给出的,一个是字符串类型,一个是整型。而在json数据格式定义中,规定了键必须是字符串类型,但并没有规定键是unique的,所以在不同的json库中,可能有些要求unique,有些不要求unique。不过最好还是不要出现这种情况。在Python的json标准库中,当把Python字典转为json字符串时,允许有重复的键,而将json字符串转为Python字典时,如果字符串中有重复的键,那只保留最后一个键值对。个人建议,如果要将Python字典转为json,那最好字典的键都用字符串类型,这样就没有下面的问题了。
字典中,键值对的键是唯一的哦
上面的都是答非所问
见核心编程第二版Page-175
7.5.1 不允许一个键对应多个值
当有键发生冲突,取最后的赋值.
就是说不报错,但实际存储的dict内容是去掉冲突后的结果