복붙노트

[PYTHON] 장고 : JSON 내 자바 스크립트를 사용하여 구문 분석

PYTHON

장고 : JSON 내 자바 스크립트를 사용하여 구문 분석

나는 내 견해를 가지고있다.

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으로 변환 geodata와 내가 그것을 통해 "루프"를 할 수 있도록 내 템플릿에 전달?

내가 그렇게 할 수 있다고 생각하는 것이 옳은가? 그렇지 않다면 더 나은 해결책을 제안하십시오.

감사!

최신 정보

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 문자열을 자바 스크립트 변수에 넘기고 (그리고 개행 문자를 이스케이프합니다) 어떻게 파이썬 / 장고에서 할 수 있습니까?

해결법

  1. ==============================

    1.내장 된 json 모듈을 사용할 수 있습니다.

    내장 된 json 모듈을 사용할 수 있습니다.

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

    그런 다음 결과 문자열을 자바 스크립트 스크립트에 간단하게 포함시킬 수 있습니다.

    <script type='text/javascript'>
    var geodata = {{ geodata|safe }};
    </script>
    
  2. ==============================

    2.좋아, 나는 내 문제를 해결하고 내 자신의 질문에 대답하고 싶다. 나는 다른 사용자들에게 더 좋을 것이라고 생각했다.

    좋아, 나는 내 문제를 해결하고 내 자신의 질문에 대답하고 싶다. 나는 다른 사용자들에게 더 좋을 것이라고 생각했다.

    먼저 여기에 파일을 가져 오십시오 : http://www.JSON.org/json_parse.js

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

    방금 escapejs를 사용했습니다. http://docs.djangoproject.com/en/dev/ref/templates/builtins/#escapejs

    편집 : 감사 Ignacio 바스케스 - 에이 브람스. #python Freenode에서 나를 도왔던 사람이 그 사람이었습니다. 나는이 게시물을 만들 때 그를 신용해야합니다. 나는 그가 Stackoverflow에 있다는 것을 몰랐다.

  3. ==============================

    3.IE7과 같은 오래된 브라우저에 신경 쓰지 않는다면 다음과 같이 간단히 작성할 수 있습니다.

    IE7과 같은 오래된 브라우저에 신경 쓰지 않는다면 다음과 같이 간단히 작성할 수 있습니다.

    var geodata = JSON.parse("{{geodata|escapejs}}");
    

    추가 라이브러리없이. JSON.parse ()를 지원하는 브라우저 버전은 http://caniuse.com/#feat=json을 참조하십시오.

    @adamk에 의해 득표 한 답변은 잠재적 인 XSS 문제가 있다고 생각합니다. JSON에 ""가 있으면 브라우저는이를