我有以下格式的数据;
(('option1', 'option1'),
('option2', 'option2'),
('option3', 'option3'))
并要求它像这样组织;
[{
"option1": "option1"
}, {
"option2": "option2"
}, {
"option3": "option3"
}]
我将如何解决这个问题?它用于JQuery收到的一些数据。
答案 0 :(得分:3)
您可以使用列表理解:
[dict([opt]) for opt in inputlist]
演示:
>>> inputlist = (('option1', 'option1'), ('option2', 'option2'), ('option3', 'option3'))
>>> [dict([opt]) for opt in inputlist]
[{'option1': 'option1'}, {'option2': 'option2'}, {'option3': 'option3'}]
但是,如果您的所有option
密钥都唯一,那么从这些元组创建一个字典会更好:
>>> dict(inputlist)
{'option2': 'option2', 'option3': 'option3', 'option1': 'option1'}
即使密钥不是唯一的,当您使用一个顶级字典时,将密钥映射到关联值的列表或集也会容易得多:< / p>
result = {}
for key, val in inputlist:
result.setdefault(key, []).append(val)
生成result
字典,其中每个键引用值的列表。如果任何键在输入列表中出现多次,则会累计关联的值。如果订单无关紧要,您也可以使用set()
(使用result.setdefault(key, set()).add(val)
)。