Превращение возвращаемой строки в словарь? - PullRequest
2 голосов
/ 22 марта 2011

Я работаю над простым скриптом Python. Он использует urllib для чтения с веб-страницы и превращения ее в словарь. Выход веб-сервера - это словарь, потому что он использует JSON. Вот что у меня есть:

<code>
import urllib2
d = 'http://www.somewebserver.com/tools/dictionary.php?string=hello'
r = urllib2.urlopen(d)
data = r.read()
r.close()
dictionary = dict(data)
print dictionary
Единственная проблема, когда я запускаю его, я получаю эту ошибку:
<code>
Traceback (most recent call last):
  File "get.py", line 6, in getstring()
    dictionary = dict(data)
ValueError: dictionary update sequence element #0 has length 20; 2 is required
Как я могу успешно превратить это в словарь?

Ответы [ 4 ]

6 голосов
/ 22 марта 2011
import json
dictionary = json.loads(data)

Или, чтобы сохранить некоторые шаги, вы можете передать свой файловый объект r в json.load:

dictionary = json.load(r)
1 голос
/ 22 марта 2011

http://docs.python.org/library/json.html

import json

json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')

[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]
1 голос
/ 22 марта 2011

Сначала вам нужно демаршаллить ваши данные json в словарь.

import json
dictionary = json.loads(data)
1 голос
/ 22 марта 2011

Используйте подпрограммы JSON в модуле json, чтобы превратить его в объекты Python.

...