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

标签 python mysql django python-2.7

我一直在努力解决这个问题,但我做不对:( 我在 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/

相关文章:

python - 扭曲意外连接丢失

c# - 使用 C# .NET Core 3 使用 SSL 证书连接到 MySQL 数据库

php - 根据用户输入 php 更新数据库

django - 是否可以将 Django 与 Access 数据库一起使用?

python - numpy 数组的字符串表示形式,用逗号分隔其元素

python - 如果你实现 __getattribute__ 有没有办法访问形式参数

python - 从 Python 写入 Vista 中的串口

php - PHP 网站的快速图书集成

djangorest框架在nginx后面时给出403,但不是直接给出

python - 如何查看 Django 模型在 admin 中有多少个关系?