Перевод синтаксиса с Python 2.7 на 2.6

это строка из Wagtail (вариант CMS Django с очень крутым пользовательским интерфейсом). Проблема в том, что он написан для 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)
                })

любая помощь, пожалуйста?


person moshushi    schedule 17.03.2014    source источник


Ответы (1)


В ‹ Python 2.7 нет понимания словаря. Вместо этого вы должны передать list из tuple встроенной функции dict().

dict((attr, getattr(result_specific, attr)) for attr in json_attrs if hasattr(result_specific, attr))
person anon582847382    schedule 17.03.2014