在我看来,我有这个:
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并将其传递给我的模板,以便我可以像数组一样"循环"它?
我是否认为我可以这样做?如果没有,那么请建议更好的解决方案.
谢谢!
UPDATE
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中执行此操作?
您可以使用内置json
模块:
>>> import json >>> geodata = [ ( "Here", (1003,3004) ), ("There", (1.2,1.3)) ] >>> json.dumps(geodata) '[["Here", [1003, 3004]], ["There", [1.2, 1.3]]]'
然后,您可以简单地将结果字符串嵌入到javascript脚本中:
标记的结尾.所以最好使用@wenbert的代码或我的代码.
我试着直接评论答案,但我没有足够的声誉去做:)