2012-03-27 2 views
2

У меня только вопрос относительно документации SimpleJSON. Неявно ли понятно, что функции, например .get(), могут использоваться без необходимости публикации автором документа? Или это что-то относительно того, как работает python вместо того, как работает SimpleJSON, поэтому нет необходимости записывать его? Я очень расстроился, когда не смог найти в документации, что можно использовать get().simplejson документация?

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') 

я не мог найти где-нибудь в документации об этой функции.

ответ

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-файла, который вы собираетесь разборки, то да, вы должны придумать хак, чтобы понять его структуру, но было бы лучше заранее знать, как структурировано. Поскольку вы собираетесь использовать свою информацию, вы, вероятно, должны знать, что (или вам будет позволено это знать).


Я вижу, что вы уже нашли, но для будущих пришельцев ссылки я хотел бы указать, что для разбора URL-адрес запросов с JSON нужно указать, что. Как было указано вам в this answer.

+0

Спасибо. Я думаю, мне нужно получить привычку использовать 'type()', чтобы узнать, что он возвращает. – starcorn

+0

Rik Poggi: на самом деле он не говорит в документации, что он вернет 'dict', поэтому я предполагаю, что в большинстве случаев вам нужно использовать' type() ', чтобы узнать, что функция возвращает в Python? – starcorn

+0

@starcorn: 'json.loads()' wont всегда возвращает тот же объект. Если вы не знаете, как он структурировал json-файл (в вашем случае ваш запрос url), да, вам придется использовать какой-то хак. В противном случае просто следуйте структуре. –

Смежные вопросы