2013-03-15 2 views
1

У меня есть строка json, и я пытаюсь напечатать каждый раздел (id, name, link и т. Д.), Используя метки в окне GUI tkinter.Как обрабатывать загруженную строку json?

данных:

{"id":"123456789","name":"John Smith","first_name":"John","last_name":"Smith","link":"http:\/\/www.facebook.com\/john.smith","username":"john.smith","gender":"male","locale":"en_GB"} 

Код:

URL = https://graph.facebook.com/ + user 
info = urlopen(info).read() 
json_format = infor.decode("utf-8") 

Моя проблема заключается в том, как я могу назначить каждый раздел данных JSON переменной сделать это может быть распечатан на этикетке Tkinter?

заранее спасибо

EDIT

Попробовал этот код:

jsonData = json.loads(json_format) 
u_name = jsoninfo['username'] 

и получил следующее сообщение об ошибке

TypeError: string indices must be integers 
+1

попробовать делать это: u_name = jsonData [ 'имя пользователя'] –

ответ

6

Вы хотите использовать json сек tandard модуль:

>>> import json 
>>> data = '{"id":"123456789","name":"John Smith","first_name":"John","last_name":"Smith","link":"http:\/\/www.facebook.com\/john.smith","username":"john.smith","gender":"male","locale":"en_GB"}' 
>>> d = json.loads(data) 

Это дает вам ваши данные как обычный словарь для использования:

>>> d 
{u'username': u'john.smith', u'first_name': u'John', u'last_name': u'Smith', u'name': u'John Smith', u'locale': u'en_GB', u'gender': u'male', u'link': u'http://www.facebook.com/john.smith', u'id': u'123456789'} 
>>> d['username'] 
u'john.smith' 
+0

, когда я попробую, чтобы я получил сообщение об ошибке, проверьте отредактированный вопрос – user2148781

+1

. ошибка в вашем примере: вы использовали 'jsoninfo' (который, по-видимому, является строкой) instaach' jsonData' (который является словарем). – icecrime

+0

Что делать, если иногда одного из секций json нет. Как я пропустил бы попытку загрузить его, не получив ошибку? – user2148781

1
try: 
    import simplejson as json 
except ImportError: 
    import json 

json_data = json.dumps(info) 
# info here is json string or your variable json_format 
+0

Что разница между simplejson и JSON? – user2148781

+0

Оба работают хорошо, вы можете использовать любой. Для получения дополнительной информации проверьте это http://stackoverflow.com/questions/712791/json-and-simplejson-module-differences-in-python –

0

Вы должны импортировать json библиотеки - она ​​включена в стандартной библиотеке, и загрузить JSON. Это преобразует строку json в словарь Python, который вы можете использовать.

import json 

py_dict= json.loads(json_string) 
# work away 
Смежные вопросы