Преобразовать словарь в json или строку
Я походу уже туплю( Надо распарсить json файл
leads = requests.post(url_lead_short_validate, json=lead_send, verify=False, headers=headers)
lead_valid = leads.json()
print(lead_valid)
i = json.loads(lead_valid)
new_short = i['data']['mtsRequestId']
short = new_short.json
print(new_short)
и вот такой лог:
Traceback (most recent call last):
File "/Users/FaCard/new_short_ful.py", line 60, in <module>
i = json.loads(lead_valid)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/json/__init__.py", line 341, in loads
raise TypeError(f'the JSON object must be str, bytes or bytearray, '
TypeError: the JSON object must be str, bytes or bytearray, not dict
Пробовал вот так, не помогает:
i = json.loads(str(lead_valid))
Что не так?
Ответы (1 шт):
Автор решения: Jack_oS
→ Ссылка
У вас в lead_valid - словарь (о чем, кстати, и говорит текст ошибки: TypeError: the JSON object must be str, bytes or bytearray, not dict), так что попробуйте сразу "добывать" из него ['data']['mtsRequestId']:
leads = requests.post(url_lead_short_validate, json=lead_send, verify=False, headers=headers)
lead_valid = leads.json()
print(lead_valid)
# i = json.loads(lead_valid)
# new_short = i['data']['mtsRequestId']
# short = new_short.json
new_short = lead_valid['data']['mtsRequestId']
print(new_short)