Найти - Пользователи
Полная версия: Обработка JSON ответа с сервера
Начало » Python для новичков » Обработка JSON ответа с сервера
1
SEvgeniy
Коллеги добрый день,

Пожалуйста, помогите решить проблему.
Я отправляю post запрос серверу, который возвращает мне ответ json формате.
Этот ответ я записываю в файл для последующей обработки:

Запрос к серверу:

import json
import requests
myurl = "http://....................."
response = requests.post(myurl, auth = ("xyz", "xyz"))
json_text = response.text
print(json_text)
with open("json_resp.txt", "w") as file:
file.write(json.dumps(json_text))

полученный файл:
{
"query": {
"msisdn": {
"ton": 1,
"npi": 1,
"address": "123456789"
},
"sm-RP-PRI": false,
"serviceCentreAddress": {
"ton": 1,
"npi": 1,
"address": "123456789"
}
},
"timeout": true,
"sccp-info": {
"sccp-remote-address": {
"ai": {
"global-title-indicator": 4,
"routing-indicator-bit": false,
"national-reserved-bit": false,
"point-code-indicator": false,
"sub-system-indicator": true
},
"ssn": 6,
"tt": 0,
"nai": 4,
"npi": 1,
"address": "123456789"
},
"sccp-local-address": {
"ai": {
"global-title-indicator": 4,
"routing-indicator-bit": false,
"national-reserved-bit": false,
"point-code-indicator": false,
"sub-system-indicator": true
},
"ssn": 8,
"tt": 0,
"nai": 4,
"npi": 1,
"address": "123456789"
}
},
"user-identifier": "M00000051",
"map-dialog-id": "D00000051",
"billing-info": {
"billed": "0.010000",
"credits": 99991.55
},
"link": "3000"
}

обработка ответа от сервеа:
import json
file = open("json_resp.txt").read()
parse_input = json.loads(file)
query = parse_input["query"]

и тут сразу же получаю ошибку:

query = parse_input
TypeError: string indices must be integers

помогите понять, причину ошибки и как правильно подходить у ее решению.

Заранее Всем спасибо!
Striver
Скопировал твой текст себе в текстовый файл, открыл в питоне твоим кодом, всё работает. Что я делаю не так?
Питон 3.7, если что…
Rodegast
> Этот ответ я записываю в файл для последующей обработки:

Зачем ты его в файл записываешь? Сразу обрабатывай.
SEvgeniy
Rodegast
> Этот ответ я записываю в файл для последующей обработки:Зачем ты его в файл записываешь? Сразу обрабатывай.

Ты прав, что когда я это делаю из своего первого скрипта без записи в файл, все работает.

Но все же, не понимаю почему когда вызываю второй свой скрипт где пытаюсь извлечь JSON файл, получаю ошибку:

query = parse_input
TypeError: string indices must be integers

Вот код второго срипта:

import json
file = open("json_resp.txt").read()
parse_input = json.loads(file)
query = parse_input["query"]

Руается имеено на эту строчку: query = parse_input

SEvgeniy
Striver
Скопировал твой текст себе в текстовый файл, открыл в питоне твоим кодом, всё работает. Что я делаю не так?Питон 3.7, если что…

Я использую: Python 3.7.4
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB