Разбор строки / объекта JSON в Python - PullRequest
4 голосов
/ 14 марта 2011

Я недавно начал работать с JSON в python.Теперь я передаю строку JSON в Python (Django) через запрос на публикацию.Теперь я хочу проанализировать / повторить эти данные.Но я не могу найти элегантный способ для анализа этих данных, который, я уверен, существует.

data = request.POST['postformdata']
print data
{"c1r1":"{\"Choice\":\"i1\"}","c2r1":"{\"Bool\":\"i2\"}","c1r2":"{\"Chars\":\"i3\"}"}

jdata = json.loads(data)
print jdata
{u'c1r2': u'{"Chars":"i3"}', u'c1r1': u'{"Choice":"i1"}', u'c2r1': u'{"Bool":"i2"}'}

Это то, что ожидалось.Но теперь, когда я хочу получить значения, я начинаю сталкиваться с проблемами.Я должен сделать что-то вроде

mydecoder = json.JSONDecoder()
for part in mydecoder.decode(data):                                             
    print part
# c1r2 c1r1 c2r1 ,//Was expecting values as well

Я надеялся получить значение + ключ, а не просто ключ.Теперь я должен использовать ключи, чтобы получить значения, используя что-то вроде

print jdata[key]

Как мне итерировать эти данные более простым способом, чтобы я мог итерировать по ключевым значениям?

Ответы [ 2 ]

5 голосов
/ 14 марта 2011

Чтобы перебрать ключ и значение, вы можете написать

for key, value in jdata.iteritems():
    print key, value

Вы можете прочитать документ здесь: dict.iteritems

0 голосов
/ 15 января 2019

Просто для других, чтобы помочь. В Python3 dict.iteritems() был переименован в dict.iter()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...