Python 3 list(dictionary.keys()) 引发错误。我究竟做错了啥?

Posted

技术标签:

【中文标题】Python 3 list(dictionary.keys()) 引发错误。我究竟做错了啥?【英文标题】:Python 3 list(dictionary.keys()) raises error. What am I doing wrong?Python 3 list(dictionary.keys()) 引发错误。我究竟做错了什么? 【发布时间】:2014-05-27 19:51:25 【问题描述】:

字典:

error['extras'] = 'expiration_month': 'Invalid field [expiration_month] - Missing field "expiration_month"'

代码:

list(error['extras'].keys())

结果:

*** Error in argument: "(error['extras'].keys())"

如果相关,我将在由 pdb.set_trace() 暂停的 django 进程中运行此代码。

【问题讨论】:

这看起来像一个嵌套字典。是有意的吗? 在 Python 3 上运行良好。您使用的是哪个版本的 Python/Django? 在 Python 2.7.6 上运行良好。错误是如何声明的?字典和调用list()之间是否还有其他代码? @merlin2011 是的,它应该是一个嵌套字典。我对 error['extras'] 处的键特别感兴趣。 【参考方案1】:

我认为问题在于list is a pdb debugger command。文档说明如下:

调试器无法识别的命令被假定为 Python 语句并在程序的上下文中执行 调试。 Python 语句也可以以感叹号为前缀 点(!)。

所以你可以尝试像这样为list 加上前缀:

!list(error['extras'].keys())

【讨论】:

@user220419 我很高兴它成功了!这是一个很难弄清楚的错误。

以上是关于Python 3 list(dictionary.keys()) 引发错误。我究竟做错了啥?的主要内容,如果未能解决你的问题,请参考以下文章