【问题标题】:SyntaxError: invalid syntax in dictionary [duplicate]SyntaxError:字典中的语法无效[重复]
【发布时间】:2014-04-09 07:15:26
【问题描述】:
Traceback (most recent call last):
  File "./openerp-server", line 2, in <module>
    import openerp
  File "/home/tiny/Desktop/openerp/server/trunk/openerp/__init__.py", line 70, in <module>
    import cli
  File "/home/tiny/Desktop/openerp/server/trunk/openerp/cli/__init__.py", line 6, in <module>
    from openerp.modules import module
  File "/home/tiny/Desktop/openerp/server/trunk/openerp/modules/__init__.py", line 27, in <module>
    from . import db, graph, loading, migration, module, registry
  File "/home/tiny/Desktop/openerp/server/trunk/openerp/modules/graph.py", line 32, in <module>
    import openerp.osv as osv
  File "/home/tiny/Desktop/openerp/server/trunk/openerp/osv/__init__.py", line 22, in <module>
    import osv
  File "/home/tiny/Desktop/openerp/server/trunk/openerp/osv/osv.py", line 22, in <module>
    from openerp.osv.orm import except_orm, Model, TransientModel, AbstractModel
  File "/home/tiny/Desktop/openerp/server/trunk/openerp/osv/orm.py", line 2377
    groupby_dict = {gb['groupby']: gb for gb in annotated_groupbys}
                                        ^
SyntaxError: invalid syntax

【问题讨论】:

  • 字典理解在 Python 2.6 中不起作用。
  • 看起来像 OpenERP 主干需要 Python 2.7 或更高版本。

标签: python python-2.6


【解决方案1】:

你必须使用

创建dict
dict((gb['groupby'], gb) for gb in annotated_groupbys)

【讨论】:

  • 其实这是一个生成器表达式,而不是列表推导式。
  • 删除列表理解 ;)
【解决方案2】:

Dict comprehensions 在 2.7 版中被添加到语言中。

所以你需要升级到 Python 2.7。如果你坚持使用 2.6,你可以使用

groupby_dict = dict((gb['groupby'], gb) for gb in annotated_groupbys)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2015-09-08
    相关资源
    最近更新 更多