Python TypeError: требуется аргумент float, а не список

0

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

У меня есть два Pi, настроенные так: Pi 1 размещает Pimoroni Enviro Phat и записывает его показания в базу данных также на Pi 1

Pi 2 является хозяином Pimoroni Scroll PhatHD. Я хотел бы, чтобы он считывал данные из базы данных на Pi 1 и отображал их на Scroll Phat HD на Pi 2

Я установил все необходимые требования к соединению Mysql, все они хороши.

Как получить показания из базы данных на Pi1, чтобы прокрутить Scroll PhatHD на Pi 2?

import signal
import time
import scrollphathd
from scrollphathd.fonts import font5x7
import mysql.connector
from mysql.connector import Error
con = mysql.connector.connect(host='192.168.#.##',database='test',user='#####',password='#######')


cur = con.cursor() 
cur.execute('SELECT Yaxis FROM readings ORDER BY Added DESC LIMIT 1')


### Keep trailing comma from SELECT result away: 
result = [row[0] for row in cur.fetchall()]

### Show result of SELECT query in terminal
print result

# temperature = int((float('result')))
temperature = ['result']

# Write the "Hello World!" string in the buffer and
#   set a more eye-friendly default brightness
scrollphathd.write_string(" Hello World! %.1fC "%(temperature), brightness=0.5)

# Auto scroll using a while + time mechanism (no thread)
while True:
    # Show the buffer
    scrollphathd.show()
    # Scroll the buffer content
    scrollphathd.scroll()
    # Wait for 0.1s
    time.sleep(0.1)

Ошибка гласит: "Ошибка типа: требуется аргумент с плавающей точкой, а не список" Спасибо.


Хорошо, у меня это работает хорошо. Pi2 читает три параметра из базы данных на Pi1 и работает с ними в некоторых if/elif чтобы соответствующим образом отобразить их на Scroll PhatHD.

Мне просто интересно. Есть ли способ в Python хранить информацию о соединении с базой данных в отдельном файле, как я могу в PHP, с помощью require? Спасибо.

  • 0
    Привет, я вижу, что вы новичок здесь, чтобы люди могли вам помочь, вы должны опубликовать всю ошибку Stack Trace, чтобы мы могли понять, почему она выбрасывается.
  • 0
    Отметил в следующий раз, спасибо.
Теги:
raspberry-pi

2 ответа

0

Похоже, что ваша ошибка вызвана этим:

scrollphathd.write_string(" Hello World! %.1fC "%(temperature), brightness=0.5)

вы пытаетесь отформатировать строку с temperature как число с float но чуть выше вы написали temperature = ['result'] который является списком.

0

Линия

temperature = ['result']

устанавливает переменную temperature как список, а строка

scrollphathd.write_string(" Hello World! %.1fC "%(temperature), brightness=0.5)

ожидает, что переменная temperature будет переменной типа с float.

Замена этой строки temperature = result[0] решит эту проблему, но обратите внимание, что она не обрабатывает случай, когда запрос возвращает пустой ответ.

  • 0
    Это исправлено, спасибо. Теперь мне нужно добавить другие поля из базы данных, что, я думаю, должно быть достаточно простым. Мне также нужно преобразовать некоторые из них из числового в текст в пределах порогов. Любые указатели приветствуются, но мне нравится самому пробовать вещи и учиться на своих ошибках. Спасибо.
  • 0
    @Richard это отличный ресурс для форматирования любых типов данных в строки в Python

Ещё вопросы

Сообщество Overcoder
Наверх
Меню