Скажем, я получаю эту строку JSON
[{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]
Как я могу преобразовать эти отдельные значения в строки? Поэтому я могу сказать
Print Status
И он возвращает
active
Скажем, я получаю эту строку JSON
[{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]
Как я могу преобразовать эти отдельные значения в строки? Поэтому я могу сказать
Print Status
И он возвращает
active
Это НЕ "строка JSON", полученная от внешнего источника. Это похоже на результат json.loads(external_JSON_string)
. Также Print Status
не будет работать; вы имеете в виду Print Status
.
>>> result = [{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]
>>> print result[0]['status']
active
Вот что выглядит "линия JSON":
>>> import json
>>> json.dumps(result)
'[{"status": "active", "due_date": null, "group": "later", "task_id": 73286}]'
>>>
EDIT: Если вы используете Python 2.5, используйте import simplejson as json
вместо import json
. Сделайте свой код немного более перспективным, сделав это:
try:
import json
except ImportError:
import simplejson as json
Прежде всего, это не JSON, как уже указывалось - это уже python.
Я думаю, вы хотите, чтобы ключи dict автоматически трансформировались в локальные переменные. Это будет действительно плохая идея, хотя теоретически возможно использование locals ()
:
result = [{u'status': u'active', u'due_date': None, u'group': u'later', u'task_id': 73286}]
for k, v in result[0].items():
locals() [k] = v
print status # prints active
Некоторые проблемы:
Кроме того, как указано в python docs, locals() не следует изменять.
Короче: сделайте это так:
print result[0]['status']
import simplejson
_dict = simplejson.loads(json_data)
for entry in _dict:
# loop over list
print entry.get('status','Failure')
# Find key in dict/entry