Использование константы в качестве адреса хоста / ip не удается, в то время как использование строки работает, почему?

#python #influxdb

Вопрос:

Когда я использую константу для записи в базу данных influxdb, она каким-то образом выходит из строя.Точно такой же код со строкой работает нормально.

Приведенный ниже код работает:

 def influx_write_dict(data_dict, database_name):

    client = InfluxDBClient(host='149.212.118.123', port=8086, username="InfluxDB", password="password")
    client.switch_database(database_name)
    print("Return code for influx write:", client.write_points([data_dict])) 

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

Так что это не работает:

 HOST_ADDRESS = '149.212.118.123'
PORT = 8086

def influx_write_dict(data_dict, database_name):

    client = InfluxDBClient(host='HOST_ADDRESS', port=PORT, username="InfluxDB", password="password")
    client.switch_database(database_name)

    print("Return code for influx write:", client.write_points([data_dict])) 

Может ли кто-нибудь объяснить, чем передача константы отличается от передачи строки?

Комментарии:

1. Оба фрагмента кода приводят к одному и тому же вызову. Вам следует искать источник ваших проблем в другом месте.

2. Да, вы правы. Спасибо, чувак. Я смотрел на это в течение нескольких часов. Спасибо, что подтвердили, что я не сумасшедший. Это на самом деле привело меня к решению довольно быстро. Я передал «HOST_ADDRESS», а не HOST_ADDRESS, что превратило его в строку. ТАЙ!

Ответ №1:

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