簡體   English   中英

如何解析json數據python django?

[英]How to parse json data python django?

我有JSON數據,我想解析它。

我使用了Code bellow:

def json_update(request):
     j = urllib2.urlopen('http://ec2-72-44-51-113.compute-1.amazonaws.com:8001/get_latest_verification')
     j_obj = json.load(j) 
     print j_obj.status
     return HttpResponse(j_obj.status)

但是我收到了錯誤:

/ json_update中的AttributeError

'list'對象沒有屬性'status'

我的json數據:

[{"status": "Registered", "credential": "10000323xsds", "scan_time": "Jan.15,2014, 03:30 pm", "asset_code": "cls103", "emp_id": "LS07", "location": "BLR-10", "auth_code": "DSC(Verisign", "operator": "pradeep", "id": 538}]

什么是解析json數據的正確方法。

但是當我將代碼更新為:

更新的代碼:

def json_update(request):
     j = urllib2.urlopen('http://ec2-72-44-51-113.compute-1.amazonaws.com:8001/get_latest_verification')
     j_obj = json.load(j)
     for jo in j_obj: 
      print j_obj[jo]['status']
     return HttpResponse(j_obj[jo]['status'])

我收到錯誤:

/ error在/ json_update

list indices必須是整數,而不是dict

你說你的json數據是:

[{"status": "Registered", "credential": "10000323xsds", "scan_time": "Jan.15,2014, 03:30 pm", "asset_code": "cls103", "emp_id": "LS07", "location": "BLR-10", "auth_code": "DSC(Verisign", "operator": "pradeep", "id": 538}]

這意味着當你執行j_obj = json.load(j)你的j_obj就是一個列表 (注意外面的[ ] )。 這就是為什么當你print j_obj.status你得到錯誤“'list'對象沒有屬性'status'”

您更新的代碼執行:

for jo in j_obj: 
    print j_obj[jo]['status']

這是在Python中使用for _ in _循環的錯誤方法,你就像在Javascript中一樣。 在Python中你會這樣寫:

for jo in j_obj: 
    print jo['status']

這將遍歷外部列表中的項目(您有一個項目,這是一個字典)並打印該字典的'status'鍵。

您可以看到for _ in _循環為您提供了循環列表中的實際項目 ,而不是索引。 所以在你的情況下, jo是一個字典,這就是為什么當你試圖做j_obj[jo]時你得到錯誤“list indices必須是整數,而不是dict”

在這里查看教程:
https://wiki.python.org/moin/ForLoop

您應該將status作為字典項訪問,而不是作為屬性。 字典是列表中的項目。

所以printreturn語句應該是:

print j_obj[0]['status']
return HttpResponse(j_obj[0]['status'])

UPDATE

要打印所有鍵,值對:

for key, value in j_obj[0].items():
    print key, value
return HttpResponse('\n'.join( # OR   '<br>'.join
    '{} {}'.format(key, value)
    for key, value in j_obj[0].items()
))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM