Ir ao conteúdo
  • Cadastre-se

Python Converter tipos de dados para int


Posts recomendados

import serial
import psycopg2

try:
    conn = psycopg2.connect("dbname='postgres' user='pi' host='localhost' password='root'")
    cur = conn.cursor()
except:
    print(" Não consigo conectar-me ao banco de dados ")
while 1:
    cur = conn.cursor()
    sensor = serial.Serial('/dev/ttyACM0', 9600)
    int(sensor)
    print(sensor.readline ())
    cur.execute("CREATE TABLE IF NOT EXISTS test (id serial PRIMARY KEY, num integer, data varchar);")
    conn.commit()
    cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (sensor, "abc'def"))
    conn.commit()
    cur.close()
    #conn.close()

O que está acontecendo?

Capturar.JPG

Link para o comentário
Compartilhar em outros sites

import serial
import psycopg2

try:
    conn = psycopg2.connect("dbname='postgres' user='pi' host='localhost' password='root'")
    cur = conn.cursor()
except:
    print(" Não consigo conectar-me ao banco de dados ")
while 1:
    cur = conn.cursor()
    sensor = serial.Serial('/dev/ttyACM0', 9600)
    print(sensor.strip())
    cur.execute("CREATE TABLE IF NOT EXISTS test (id serial PRIMARY KEY, num integer, data text);")
    conn.commit()
    cur.execute("INSERT INTO test (id, num, data) VALUES (defalt, "+int(sensor)+","+str("abc")+")")
    conn.commit()
    cur.close()
    #conn.close()
   
        

@GeorgeNVJá mudei algumas coisas, mas me parece que o metodo 'Serial' vem com alguns comandos como b, 387 \r \n, e isso não deixa ele ser convertido e após tentar retirar esses caracteres com o strip() surgiu outro erro:

Capturar.JPG

Link para o comentário
Compartilhar em outros sites

@Ofioneu  esse erro aconteceu porque o strip() é uma função de objetos do tipo string e por isso não funciona com a variável sensor, pois ela é do tipo Serial. Você precisa achar uma forma de extrair, no formato str, a informação que você deseja do sensor para então passá-la para o banco de dados.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

amigo, exatamente isso que você disse, já consegui converter só pra string agora estou tentando converter pra int.
Já posto o resultado

adicionado 4 minutos depois

esse b é referente a base 10

adicionado 52 minutos depois

Resolução do problema:

import serial
import psycopg2

sensor = serial.Serial('/dev/ttyACM0', 9600)

while 1:
    valor= int(str(sensor.readline().strip(),'ascii'))
    print(valor)

Obrigado @GeorgeNV

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...