2012-12-18 5 views
12

Objective-C에서 JSON 문자열을 Python으로 보냈습니다. 그런 다음 문자열의 내용을 파이썬 목록으로 나누고 싶습니다.Python : 사전 목록으로 JSON 문자열 - 반복 할 때 오류 발생

import json 

s = '[{"i":"imap.gmail.com","p":"[email protected]"},{"i":"imap.aol.com","p":"anoterPass"}]' 
jdata = json.loads(s) 
for key, value in jdata.iteritems(): 
    print key, value 

나는이 오류가 :

Exception Error: 'list' object has no attribute 'iterates'

답변

15

귀하의 JSON 데이터는 사전의 목록입니다, 그래서 json.loads(s) 후에는 목록이 아니라 사전으로 jdata있을 것이다. 위의 파이썬 3.6

import json 

s = '[{"i":"imap.gmail.com","p":"[email protected]"},{"i":"imap.aol.com","p":"anoterPass"}]' 
jdata = json.loads(s) 
for d in jdata: 
    for key, value in d.iteritems(): 
     print key, value 
4

json.loads(s) 당신에게 list를 반환 내가 문자열 (지금은 임의의 문자열)을 반복하는 것을 시도하고있다. 이상 반복하려면 iteritems이 필요하지 않습니다.

>>> jdata = json.loads(s) 
>>> for doc in jdata: 
...  for key, value in doc.iteritems(): 
...   print key, value 
+1

이 있습니다

은 다음과 같은 것을 시도? 하지만 솔루션에 포함되어 있습니다. – Pyderman

0

, 약간의 차이 당신은`iteritems을 don't` 필요

s = '[{"i":"imap.gmail.com","p":"[email protected]"},{"i":"imap.aol.com","p":"anoterPass"}]' 
jdata = json.loads(s) 
print (jdata) 
for d in jdata: 
    for key, value in d.items(): 
     print (key, value) 


[{'i': 'imap.gmail.com', 'p': '[email protected]'}, {'i': 'imap.aol.com', 'p': 'anoterPass'}] 
i imap.gmail.com 
p [email protected] 
i imap.aol.com 
p anoterPass 
관련 문제