首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python类型强制转换错误双值:‘237’对于第1行的‘wtx520’.`风化‘.`value’

Python类型强制转换错误双值:‘237’对于第1行的‘wtx520’.`风化‘.`value’
EN

Stack Overflow用户
提问于 2019-08-03 14:39:24
回答 1查看 180关注 0票数 0

我有一个Raspi项目,在该项目中,我希望将天气传感器的值存储在DB中。值以字符串的形式出现。我能把它分开,但我犯了一个愚蠢的错误,无法储存价值。代码

代码语言:javascript
复制
mport mysql.connector
import re
db =mysql.connector.connect(host='localhost', port=3306, db='wtx520', password='xxx', user='xxx')
#port 3307 für synology
#example string
line ="0r1,Dn=237D,Dm=237D,Dx=237D,Sn=0.1N,Sm=0.2N,Sx=0.3NLq@"
pair = line.split(",")

for i in pair:
    value = i.split("=")

    print(value[0])
    if len(value)>1: 

     decvalue =re.findall("\d*\.?\d+", value[1])

     key= value[0]
     #remove brackets around dec value
     inserttuple=(key,str(decvalue).replace('[','').replace(']',''))
     #inserttuple=(str(key), "237") it works with this static example
     sql_insert_query = """INSERT INTO weather (valuekey, value) VALUES (%s,%s)"""

     mycursor = db.cursor()
     result  = mycursor.execute(sql_insert_query,inserttuple)
     db.commit()

DB表定义:

代码语言:javascript
复制
CREATE TABLE wtx520.weather (
  ts TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
  value DOUBLE DEFAULT NULL,
  valuekey VARCHAR(4) DEFAULT NULL
)
ENGINE = INNODB,
AVG_ROW_LENGTH = 1365,
CHARACTER SET utf8,
COLLATE utf8_general_ci;

错误: Nachricht = 1366 (22007):在第1行Quelle =Stapelüberwachung的列wtx520.weather.value的‘’237‘值:"C:\Users\Marcel\source\repos\wtx520-azure\wtx520-azure\wtx520_azure.py",第22行,结果= mycursor.execute(sql_insert_query,插入)

任何帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-03 15:02:14

解决办法是:

inserttuple=(key,str(decvalue).replace('','').replace('',‘’).replace(‘,''))

谢谢你的暗示!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57339317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档