@xawifoo

Как правильно распрасить json?

Здравствуйте!

[{'tzid': '000000', 'phone': '000000', 'service': 'test', 'status': 'TZ_NUM_PREPARE'}]


Парсю следующим образом -
test = "[{'tzid': '000000000', 'phone': '000000', 'service': 'test', 'status': 'TZ_NUM_PREPARE'}]"
print(json.loads(test)


Но, отдает ошибку
TypeError: the JSON object must be str, bytes or bytearray, not list


Пожалуйста, подскажите, как правильно распарсить данный json?
  • Вопрос задан
  • 2123 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Python
Расставляю биты, управляю заряженными частицами
Если брать конкретно ваш случай - то:

>>> test = "[{'tzid': '000000000', 'phone': '000000', 'service': 'test', 'status': 'TZ_NUM_PREPARE'}]"
>>> import json
>>> print(json.loads(test.replace("'", '"')))
[{'tzid': '000000000', 'phone': '000000', 'service': 'test', 'status': 'TZ_NUM_PREPARE'}]
>>> print(json.loads(test.replace("'", '"'))[0]['tzid'])
000000000


JSON таки некорректный у вас.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@deliro
Это не JSON. В JSON кавычки двойные

In [6]: x = '[{"tzid": "000000000", "phone": "000000", "service": "test", "statu
   ...: s": "TZ_NUM_PREPARE"}]'

In [7]: x
Out[7]: '[{"tzid": "000000000", "phone": "000000", "service": "test", "status": "TZ_NUM_PREPARE"}]'

In [8]: json.loads(x)
Out[8]: 
[{'tzid': '000000000',
  'phone': '000000',
  'service': 'test',
  'status': 'TZ_NUM_PREPARE'}]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы