gpt4 book ai didi

python - 将数组内的元组转换为Python中的字典

转载 作者:行者123 更新时间:2023-11-29 05:07:05 25 4
gpt4 key购买 nike

我一直在努力解决这个问题,但我做不对:(我在 Django 中查询 mySQL 数据库,结果返回为数组中的元组。请参阅下面的虚拟数据;

query_results = [
(500, datetime.date(2017, 1, 1)),
(302, datetime.date(2017, 1, 2)),
(550, datetime.date(2017, 1, 3)),
(180, datetime.date(2017, 1, 4)),
(645, datetime.date(2017, 1, 5)),
(465, datetime.date(2017, 1,6))
]

500、302、550 等...是我的记录。下一个元素是这些记录的日期。我想使用循环将它们附加到字典中,但我总是收到以下错误:

TypeError: list indices must be integers, not tuple.

谁能给我一些关于如何将这些附加到这样的东西中的建议:

myDict = {
"record": "",
"date": ""
}

非常感谢所有帮助!

最佳答案

您可以解压缩元组列表并将它们压缩成包含您想要的键的字典,

dict(zip(['record', 'date'], zip(*query_results)))

哪些输出

{'date': (datetime.date(2017, 1, 1),
datetime.date(2017, 1, 2),
datetime.date(2017, 1, 3),
datetime.date(2017, 1, 4),
datetime.date(2017, 1, 5),
datetime.date(2017, 1, 6)),
'record': (500, 302, 550, 180, 645, 465)}

更新

如果您希望得到一个听写列表,您可以直接使用列表理解。

[dict(record=record, date=date) for record, date in query_results]

哪些输出

[{'date': datetime.date(2017, 1, 1), 'record': 500},
{'date': datetime.date(2017, 1, 2), 'record': 302},
{'date': datetime.date(2017, 1, 3), 'record': 550},
{'date': datetime.date(2017, 1, 4), 'record': 180},
{'date': datetime.date(2017, 1, 5), 'record': 645},
{'date': datetime.date(2017, 1, 6), 'record': 465}]

关于python - 将数组内的元组转换为Python中的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45927447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com