具有重复键但值不同的python3字典

2024-09-24 22:18:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要提交一个如下所示的formdata:

evt: 2001
evt: 1024001
src: mstrWeb.my.fbb.fb.2001
src: mstrWeb.my.fbb.1024001

当我创建python3dict时:

^{pr2}$

它按顺序删除重复的键。我得到:

>>> print (Dict)
{'evt': '1024001', 'src': 'mstrWeb.my.fbb.1024001'}

有没有办法让我的字典里的重复钥匙完好无损?在


Tags: src字典顺序mydictevt钥匙print
2条回答

Python dict有唯一的键。这是绕不开的。在

一种方法可能是在Python中创建一个defaultdict列表,然后在表单代码中使用jingafor循环来迭代dict的值

或者,如果您能够发送json字符串,this workaround for handling duplicate keys可能会有帮助:

给定

data = [
    ("evt", "2001"),
    ("evt", "1024001"),
    ("src", "mstrWeb.my.fbb.fb.2001"),
    ("src", "mstrWeb.my.fbb.1024001")
]

编码

^{pr2}$

这对我有用,我从这里拿走了:Link

class person(object):
        def __init__(self,name):
                self.name = name

        # As it would print for a user
        def __str__(self):
                return self.name

        # As it would print for a debugging person
        def __repr__(self):
                return "'"+self.name+"'"


Dict = {person('evt'): '2001',
        person('evt'): '1024001',
        person('src'): 'mstrWeb.my.fbb.fb.2001',
        person('src'): 'mstrWeb.my.fbb.1024001'}

print (Dict) #outputs

{'evt': '2001', 'evt': '1024001', 'src': 'mstrWeb.my.fbb.fb.2001', 'src': 'mstrWeb.my.fbb.1024001'}

相关问题 更多 >