我对SimpleJSON的文档有一个疑问。是隐式理解的是,例如.get()的函数可以在不需要作者记录的情况下使用吗?或者它是关于python如何工作而不是SimpleJSON如何工作的东西,因此不需要写下来?当我在文档中找不到get()
可以使用时,我真的很沮丧。
http://simplejson.readthedocs.org/en/latest/index.html
例如以下代码
import simplejson as json
import urllib2
req = urllib2.Request("http://example.com/someJson")
opener = urllib2.build_opener()
f = opener.open(req)
data = json.load(f)
print data.get('results')
我在文档中找不到有关此功能的任何内容。
答案 0 :(得分:3)
json.load()
将反序列化您的JSON文档并返回一个Python对象。
所以我要说data
是dict
而这里是.get()
documentation。
Python对象json.load()
将返回什么取决于您将给予他的输入。
与json.loads()
相同但是在字符串上的示例:
>>> json.loads('[1, 2, "dog"]')
[1, 2, 'dog']
>>> json.loads('{"animals": ["cat", "dog"], "4": 4}')
{'animals': ['cat', 'dog'], '4': 4}
>>> json.loads('"dog"')
'dog'
如你所见,有无数可能性(因为它们也可以嵌套)。
如果你不知道你要解析的json文件的格式那么是的,你应该想出一些hack来理解它的结构,但最好事先知道结构如何。由于您要使用其信息,您应该知道(或被允许知道)。
我看到你已经发现了,但是对于未来的参考者,我想指出用json解析url请求需要指定它。正如this answer中指出的那样。