Как можно изолировать причину неожиданного завершения ввода JSON

#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. Хорошо, дух! Слишком долго смотрел на это! Спасибо, что указали на очевидное.