#python #json #python-requests
#python #json #python-запросы
Вопрос:
У меня есть программа на Python, которая пытается опубликовать словарь, прочитанный из файла, в URL. Словарь выглядит следующим образом:
{
"location": "loc",
"host": "host.somewhere.com",
"body": "Test Notification from host",
"attributes": {
"short_description": "host - This is a test",
"definition": "some.program generated a(n) alert",
"condition": "host called notify alert.",
"create_time": "1605721114",
"event_class": "event.class.some.program:alert:info",
"reporter_severity": 9,
"reporter_name": "some.program.info",
"alert_type": "create",
"action_uri": ""
}
}
Почтовый код выглядит следующим образом:
# Read the file from disk.
with open(lNotification, "r") as jsonFile:
lNotificationDict = json.load(jsonFile)
lNotificationData = jsonFile.read()
.
.
.
# Send the request.
lHeaders = {"Content-Type": "application/json"}
lResp = requests.post(
lConfigParms['SendToURL'],
headers=lHeaders,
data=lNotificationData
)
Я получаю сообщение об ошибке ниже:
{«статус»: 400,»сообщение»: «Ошибка при обработке предупреждения: неожиданное завершение ввода JSON»}
Я взял содержимое файла JSON и использовал curl для отправки запроса, и он был выполнен успешно. Кроме того, я использовал пару разных инструментов для проверки JSON. Все используемые инструменты сообщают, что JSON является действительным.
Любые предложения по изоляции причины ошибки?
Комментарии:
1. Вы пробовали перейти
data=lNotificationData
наjson=lNotificationData
?2. Используйте такой инструмент, как Fiddler, для проверки того, что отправляется / принимается при выполнении запроса из python.
3. Вы читаете один и тот же файл дважды, в
json.load(jsonFile)
иjsonFile.read()
. После первого чтения вы просматриваете конец файла и ничего не читаете во втором.4. Хорошо, дух! Слишком долго смотрел на это! Спасибо, что указали на очевидное.