将返回的字符串转换为字典

时间:2011-03-22 19:43:41

标签: python dictionary urllib2

我正在研究一个简单的python脚本。它使用urllib从网页读取并将其转换为字典。 Web服务器输出的方式是字典,因为它使用JSON。这是我有的:


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
唯一的问题是当我运行它时我得到这个错误:

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 个答案:

答案 0 :(得分:6)

import json
dictionary = json.loads(data)

或者为了保存一些步骤,您可以将文件对象r传递给json.load

dictionary = json.load(r)

答案 1 :(得分:1)

使用json模块中的JSON例程将其转换为Python对象。

答案 2 :(得分:1)

首先需要将{json数据de-marshall放入字典中。

import json
dictionary = json.loads(data)

答案 3 :(得分:1)

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]}]