JSON запись формата данных в InfluxDB ошибка приводит к ответу 204 - PullRequest
0 голосов
/ 18 июня 2020

Я запрашиваю некоторые данные из API погоды и пытаюсь сохранить их в базе данных infxdb.

Когда я пытаюсь записать данные json в базу данных притока, я получаю ответ 204, и никакие данные не записываются в базу данных. Точная ошибка из журналов docker:

[httpd] 172.17.0.1 - root [17/Jun/2020:23:00:35 +0000] "POST /write?db=external_weather HTTP/1.1" 204 0 "-" "python-requests/2.23.0" 5ac727b3-b0ee-11ea-8152-0242ac110002 169

Мой код:

import requests
from requests.exceptions import HTTPError
from influxdb import InfluxDBClient

url = "http://api.openweathermap.org/data/2.5/weather"
payload = {
    "lat": 51.509865,
    "lon": -0.118092,
    # "exclude": {"minute", "hourly", "daily"},
    "appid": "xxx",
    "units": "metric"}


try:  

    responce = requests.get(url, params=payload)
    responce.raise_for_status()
    json_responce = [responce.json()]
    print(responce.status_code)


except HTTPError as http_err:
    print(f'HTTP error occurred: {http_err}')

except Exception as err:
    print(f'Other error occurred: {err}')


# Send to InfluxDB


'''
'''
client = InfluxDBClient()
client.write_points(json_responce, database='external_weather')
print(json_responce)

json_responce содержит следующую информацию:

[{'coord': {'lon': -0.12, 'lat': 51.51}, 'weather': [{'id': 500, 'main': 'Rain', 'description': 'light rain', 'icon': '10n'}], 'base': 'stations', 'main': {'temp': 16.14, 'feels_like': 15.39, 'temp_min': 15.56, 'temp_max': 16.67, 'pressure': 1012, 'humidity': 71}, 'wind': {'speed': 1.49, 'deg': 143}, 'rain': {'1h': 0.9}, 'clouds': {'all': 100}, 'dt': 1592435463, 'sys': {'type': 3, 'id': 268730, 'country': 'GB', 'sunrise': 1592451762, 'sunset': 1592511641}, 'timezone': 3600, 'id': 2643743, 'name': 'London', 'cod': 200}]

Не понимаю, почему приток отказывается принимать данные.

1 Ответ

0 голосов
/ 18 июня 2020

Согласно документации InfluxDBClient, код ответа 204 фактически ожидается при записи данных в базу данных притока, см. https://influxdb-python.readthedocs.io/en/latest/api-documentation.html#influxdb .InfluxDBClient.write

Пожалуйста, дважды проверьте, действительно ли существует проблема с записью данных в поток в вашем случае.

...