如何划分 2 个 VARCHAR(255) 值并插入行(MySQL,Python)
Posted
技术标签:
【中文标题】如何划分 2 个 VARCHAR(255) 值并插入行(MySQL,Python)【英文标题】:How to divide 2 VARCHAR(255) values and insert into row (MySQL, Python) 【发布时间】:2019-05-16 06:13:57 【问题描述】:表格数据:
我有一个表 cpu,其中包含列名称、价格、id、标记、值
数据格式:
价格值为 $xxx.xx,标记值为 xxxxxx,两者都存储为 VARCHAR(255) 的。
问题:
如何使用 mysql python 将价格划分为标记,然后将该变量存储在每一行的值中?
我对代码有以下想法:对于每一行获取价格并标记检查它们都有一个值,通过删除“$”并将其设置为浮点数将价格转换为浮点数。然后我可以将标记设置为浮点数,这样我就可以将价格划分为标记并将这个值作为 VARCHAR(255) 保存到值列中,然后再移动到下一行,直到我浏览完所有行。
Python建表代码:
mycursor.execute("CREATE TABLE IF NOT EXISTS cpu (name VARCHAR(255) UNIQUE, price VARCHAR(255), id VARCHAR(255) UNIQUE, mark VARCHAR(255), value VARCHAR(255))")
SQL 小提琴:
SQL fiddle of table structure
示例:
价格:250 美元,标记:13500
我想用马克除以价格来计算价值(每美元的马克)
我希望将此值存储为数字,例如
值:54
我希望每行都发生这种情况,直到所有行都完成为止,如果任一字段都没有值,我想跳过该行。
更新:
mycursor = mydb.cursor()
number_of_rows = mycursor.execute("select * from cpu")
result = mycursor.fetchall()
for row in result:
print(row)
上面的代码循环遍历所有行,但我不确定如何只打印价格和标记,我也不确定如何在每一行中插入一个值?
其他
如果您需要更多详细信息,请告诉我。
任何帮助将不胜感激。
谢谢
【问题讨论】:
发布SHOW CREATE TABLE table_name的文字结果;请。 请在您的示例表中发布数据,以便我们处理您的数据。 给你:db-fiddle.com/f/sngju1uUBNMF56eVVTYu6H/5 谢谢 我在想我必须通过删除“$”将价格转换为 python 中的浮点数,然后将其与标记一起转换为浮点数,这样我就可以将它们分开以创造价值。但是我不确定这样做的代码。谢谢 我还更新了帖子中的信息以及我认为可能有帮助的其他内容。谢谢 【参考方案1】:mycursor = mydb.cursor()
mycursor.execute("SELECT num, price, mark FROM cpu")
myresult = mycursor.fetchall()
for x in myresult:
print(x)
y = str(x)
num, price, mark = y.split(',')
num = num.replace("(", "")
price = price.replace("'", "")
price = price.replace(" ", "")
price = price.replace("$", "")
mark = mark.replace(")", "")
mark = mark.replace("'", "")
mark = mark.replace(" ", "")
price = float(price)
if mark != "None":
mark = float(mark)
value = mark/price
else:
value = 0
value = round(value, 2)
value = str(value)
num = str(num)
print(num)
print(price)
print(mark)
print(value)
sql = "UPDATE cpu SET value = " + value + " WHERE num = " + num +";"
print(sql)
mycursor.execute(sql)
mydb.commit()
mydb.commit()
这是我解决我的问题的代码,我几乎可以肯定它可以改进,所以随时添加另一个答案或评论,我会改变它。
【讨论】:
以上是关于如何划分 2 个 VARCHAR(255) 值并插入行(MySQL,Python)的主要内容,如果未能解决你的问题,请参考以下文章