2

这是 Wagtail 中的一句话(带有非常酷的 UI 的 Django 变体 CMS)。问题是它是为 Python 2.7 编写的,我在共享主机上使用 Python 2.6 和 Django + FastCGI。

我已经更改了mhlester发现的以前的语法错误, 但无法解决这个问题:

>>> for attr in json_attrs
  File "<stdin>", line 1
    for attr in json_attrs
                          ^
SyntaxError: invalid syntax

原始代码:

 if use_json: # Return a json response
        if search_results:
            search_results_json = []
            for result in search_results:
                result_specific = result.specific

                search_results_json.append({
                    attr: getattr(result_specific, attr)
                    for attr in json_attrs
                    if hasattr(result_specific, attr)
                })

请问有什么帮助吗?

4

1 回答 1

4

< Python 2.7 中没有字典推导。相反,您应该将 a listof tuples 传递给dict()内置函数。

dict((attr, getattr(result_specific, attr)) for attr in json_attrs if hasattr(result_specific, attr))
于 2014-03-17T16:24:49.127 回答