Django: Проанализируйте JSON в моем шаблоне с помощью JavaScript

У меня есть это, по моему мнению:

string_location = myaddress2
    geodata = []
    for place, (lat, lng) in g.geocode(string_location,exactly_one=False):
        geodata.append((place, (lat, lng)))

    geodata_results = len(geodata)

    data = {"geodata": geodata, "geodata_results":geodata_results }
    return render_to_response("business/business_view.html",
                              data, context_instance=RequestContext(request))

Как я "обработал" бы / преобразовывают геоданные в JSON и передают его моему шаблону так, чтобы я мог "циклично выполниться" через него как массив?

Действительно ли я прав думать, что я могу сделать это этот путь? В противном случае затем предложите на лучшем решении.

Спасибо!

ОБНОВЛЕНИЕ

var geodata = "[["M. L. Quezon Street<br/>Mandaue City, Philippines", [10.351381999999999, 123.923535]], ["Talamban<br/>Cebu City, Philippines", [10.353527, 123.91352500000001]]]"; 

Я думаю, что JSON не оставляют? Как я выхожу из специальных символов в строке json? Я продолжаю получать ошибку новой строки.

Для PHP я был бы json_encode () для фиксации этого. Как в этом сообщении: Передайте строку PHP переменной JavaScript (и выйдите из новых строк), НО как я делаю это в Python/Django?

26
задан Community 23 May 2017 в 12:34
поделиться

2 ответа

Вы можете использовать встроенный модуль json :

>>> import json
>>> geodata = [ ( "Here", (1003,3004) ), ("There", (1.2,1.3)) ]
>>> json.dumps(geodata)
'[["Here", [1003, 3004]], ["There", [1.2, 1.3]]]'

Затем вы можете просто встроить полученную строку в сценарий javascript:

<script type='text/javascript'>
var geodata = {{ geodata|safe }};
</script>
63
ответ дан 28 November 2019 в 06:04
поделиться

Хорошо, я решил свою проблему и хочу ответить на свой вопрос. Я подумал, что здесь будет лучше для других пользователей.

Сначала получите файл здесь: http://www.JSON.org/json_parse.js

var geodata = json_parse("{{geodata|escapejs}}");

Я только что использовал escapejs: http://docs.djangoproject.com/en/dev / ref / templates / builtins / # escapejs

РЕДАКТИРОВАТЬ: Спасибо Игнасио Васкес-Абрамсу. Именно он помог мне в #python Freenode. Должен был поверить ему, когда написал этот пост. Я не знал, что он был в Stackoverflow.

28
ответ дан 28 November 2019 в 06:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: