python sqlite3更新二进制字段

vq8itlhq  于 2022-12-04  发布在  SQLite
关注(0)|答案(1)|浏览(163)

从一个数据库sqlite3中执行SELECT操作,得到的结果是:

b'\n\x0b24 JUN 1974"-\x08\x01\x10\x00\x18\x00 \x18(\x060\xb6\x0f8\x00@\x00H\x00P\x00X\xbf\x84=`\x00h\x00p\x00x\x00\x80\x01\x00\x88\x01\x01\x90\x01\xa0\xdc\x90^'

这是数据库的字段数据(VARCHAR(255))我的遗产和我想保存相同的结果到同一个数据库。

conn = sqlite3.connect(robocza+"database.ftb")
conn.text_factory = bytes
cursor = conn.cursor()
cursor.execute( "SELECT date FROM individual_fact_main_data where guid ='xxxxxx' " )
rows = cursor.fetchone()

给定结果:

b'\n\x0b24 JUN 1974"-\x08\x01\x10\x00\x18\x00 \x18(\x060\xb6\x0f8\x00@\x00H\x00P\x00X\xbf\x84=`\x00h\x00p\x00x\x00\x80\x01\x00\x88\x01\x01\x90\x01\xa0\xdc\x90^'

我如何在同一个新数据库中执行UPDATE命令以正确写入给予结果?

r3i60tvu

r3i60tvu1#

要使用Python更新SQLite数据库中的字段,可以将UPDATE语句与sqlite3模块提供的execute()方法结合使用。
例如,如果要更新数据库中individual_fact_main_data表的日期字段,可以使用以下Python代码:

import sqlite3

# Connect to the database
conn = sqlite3.connect(robocza+"database.ftb")
conn.text_factory = bytes

# Create a cursor object
cursor = conn.cursor()

# Define the UPDATE query
query = "UPDATE individual_fact_main_data SET date = ? WHERE guid = ?"

# Define the values to update
values = (b'\n\x0b24 JUN 1974"-\x08\x01\x10\x00\x18\x00 \x18(\x060\xb6\x0f8\x00@\x00H\x00P\x00X\xbf\x84=`\x00h\x00p\x00x\x00\x80\x01\x00\x88\x01\x01\x90\x01\xa0\xdc\x90^', 'xxxxxx')

# Execute the UPDATE query
cursor.execute(query, values)

# Save the changes to the database
conn.commit()

# Close the database connection
conn.close()

此代码将使用指定的值更新individual_fact_main_data表的日期字段,其中guid字段的值为xxxxxx。(\x060\xb6\x0f8\x00@\x00H\x00P\x00X\xbf\x84= \x00h\x00p\x00x\x00\x80\x01\x00\x88\x01\x90\x01\xa0\xdc\x90 ^''值是日期的二进制表示法,这是SQLite中VARCHAR(255)字段的预设表示法。
有关UPDATE语句与其他SQLite命令的详细信息,可以参考SQLite文档。

相关问题