2012-09-28 3 views
0

Я пытаюсь научиться Джанго/Python и я пытаюсь выяснить, как читать данные JSon ...django/python чтение json?

У меня есть что-то вроде:

{ 
    region: { 
    span: { 
     latitude_delta: 0.08762885999999526, 
     longitude_delta: 0.044015180000002374 
    }, 
    center: { 
     latitude: 37.760948299999995, 
     longitude: -122.4174594 
    } 
    },... 
} 

Я пытаюсь прочитать конкретные данные на моей странице html. Сейчас эти данные json отображаются на странице html.

Источником этого исходит из JSON это:

return HttpResponse(json.dumps(response),mimetype="application/json") 

Я пытаюсь выяснить Джанго/питон условность получения конкретных данных? Я должен делать для каждого цикла? Я исхожу из собственного php-фона, и я пытаюсь научить себя python/django.

Спасибо

редактировать:

У меня также есть это в моем view.py до возвращения HttpResponse

try: 
     conn = urllib2.urlopen(signed_url, None) 
     try: 
      response = json.loads(conn.read()) 
     finally: 
      conn.close() 
    except urllib2.HTTPError, error: 
     response = json.loads(error.read()) 
+0

"Som что-то вроде "? Это не является действительным JSON или Python ... –

+0

Вы посмотрели http://stackoverflow.com/questions/3345076/django-parse-json-in-my-template-using-javascript – Rohan

+1

? это немного запутывает ... вам удается создать json с помощью json.dumps (response), ответ должен быть вашими данными как объекты python. json.dumps() превращает его в json. Противоположностью json.dumps() является json.loads() – monkut

ответ

0

Это не ясно, что вы хотите перебрать, где и как , но основные петли работают следующим образом:

data = {"key1":[1,2], "key":[4,5]} 
for key, values in data.iteritems(): 
    print key, values 
+0

Это пойдет в мои view.py под тем же 'def'? Например, если весь мой код находится в 'def search (request)', я просто пытаюсь проверить, должен ли я зацикливаться внутри .html-файла? или цикл в файле view.py? Я не знаю, если это имеет смысл для вас? – hellomello

+0

hmmm ... ну вы можете создать петлю и проанализировать объекты в представлении или петли в шаблоне. Я бы сказал, что проще всего управлять данными в представлении, чтобы передать его в чистую структуру, прежде чем перейти к шаблону. Если вы еще не предложили вам попробовать учебник python, а затем учебник django. – monkut

1

Это самый простой способ чтения JSON в HTML (Отправить Джанго)

def sendJson(request): 
    if request.method == 'GET': 
     context = {"name":"Json Sample Data"} 
     return render_to_response('name.html',context)   

Django шаблон HTML код

<div class="col-md-9 center"> 
    <span class="top-text">{{name}}</span> 
</div> 

Теперь в соответствии с вашими:

def sendJson(request): 
    if request.method == 'GET': 
     jsonData = { 
      region: { 
      span: { 
      latitude_delta: 0.08762885999999526, 
      longitude_delta: 0.044015180000002374 
      }, 
      center: { 
      latitude: 37.760948299999995, 
      longitude: -122.4174594 
      } 
     } 
     } 
     data = json.dumps(jsonData) 
     return HttpResponse(data, content_type="application/json") 

вы можете прочитать эти данные с помощью JQuery также

другой пример для создания JSON и читать в HTML

url.py

url(r'^anotherexample/$', 'views.anotherexample', name="anotherexample"), 

view.py

def anotherexample(request): 
    if request.method == 'POST': 
     _date = strftime("%c") 
     response_data = {} 
     response_data['status'] = 'taken' 
     response_data['issueTakenTime'] = _date 
     return HttpResponse(json.dumps(response_data), content_type="application/json") 

Html вид и jquery

$.ajax({ 
    url: "/anotherexample/", 
    // contentType: "application/json; charset=UTF-8", 
    data: { csrfmiddlewaretoken: "{{ csrf_token }}", // < here 
     status : "taken" 
     }, 
    type: "POST", 
    error: function(res) { 
     console.log("errr", res) 
    }, 
    success: function(res) { 
     console.log("res", res)} 
    }) 
+0

Это то же, что я использовал. –