UnicodeDecodeError с Jinja2 + GAE - PullRequest
0 голосов
/ 07 ноября 2011

Я получаю следующую ошибку при попытке сделать иностранные символы из dict. Ты хоть представляешь, что мне делать?

File "/base/data/home/apps/s~montaoproject/cap.354503891062679364/main.py", line 333, in render_jinja
    self.response.out.write(template.render(data))
  File "/base/data/home/apps/s~montaoproject/cap.354503891062679364/jinja2/environment.py", line 894, in render
    return self.environment.handle_exception(exc_info, True)
  File "/base/data/home/apps/s~montaoproject/cap.354503891062679364/templates/list_jinja.html", line 199, in top-level template code
    {% for key,value in location_map_br_11_cap.items() %}<option value="3" >{{ value.name }}</option>{% endfor %}
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 9: ordinal not in range(128)

Вот моя переменная:

location_map_br_11_cap = {1: {
    'name': str('Toda Região 11 (ddd)'),
    'lat': -23.55,
    'long': -46.64,
    'radius': 294200,
    }, 2: {
    'name': str('Todo Estado de São Paulo'),
    'lat': -22.90,
    'long': -43.21,
    'radius': 294200,
    }, 1: {
    'name': str('Toda região Sudeste do Brasil'),
    'lat': -23.55,
    'long': -46.64,
    'radius': 294200,
    }}

Я попробую это с некоторой надеждой, что это удастся:

location_map_br_11_cap = {1: {
    'name': str('Toda Região 11 (ddd)').decode('utf-8'),
    'lat': -23.55,
    'long': -46.64,
    'radius': 294200,
    }, 2: {
    'name': str('Todo Estado de São Paulo').decode('utf-8'),
    'lat': -22.90,
    'long': -43.21,
    'radius': 294200,
    }, 1: {
    'name': str('Toda região Sudeste do Brasil').decode('utf-8'),
    'lat': -23.55,
    'long': -46.64,
    'radius': 294200,
    }}

1 Ответ

4 голосов
/ 07 ноября 2011

Ваша переменная location_map_br_11_cap содержит значения с именами, которые являются необработанными строками, а не строками Юникода. Конвертируйте ваши строки в Unicode, чтобы Jinja знал, как их кодировать, когда генерирует шаблон.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...