提问人:SomeRandomDude111 提问时间:9/27/2023 更新时间:9/29/2023 访问量:49
无法使用 python 在 mysql 数据库中正确插入 NULL 值
Can not properly insert NULL value in mysql database using python
问:
我使用 json 格式发送数据,这是我的代码片段,它返回一个错误
def blocks_files(self, db, order_id, op_id, file_ids, images):
"""Creating record in blocks_files table."""
files_list = []
keys = list(images.keys())
for file in file_ids:
if str(file) in keys:
new = str()
for i in range(len(images[str(file)])):
new += '%s, ' % str((images[str(file)])[i])
files_list.append((order_id, op_id, file, new))
else:
files_list.append((order_id, op_id, file, None))
try:
logging.debug(
"Inserting data in blocks_files table."
)
cursor = db.cursor()
query = (
f"INSERT INTO {self.FILES_TABLE}"
f"(order_id, op_id, file_id, imgs)"
f"VALUES {(', '.join(map(str, files_list)))};"
)
cursor.execute(query)
db.commit()
cursor.close()
logging.debug(
"Data inserted successfully!"
)
except connector.Error as err:
logging.error(err)
问题出在部分地方。起初似乎一切正常,但我在日志中出现错误。但是我希望它应该将 NULL 放在 imgs 列中......我用下面的主题作为灵感,但没有用。尝试将“NULL”作为字符串发送不是我想要的,我需要正确的 SQL NULL 值,区别在于屏幕截图上正确的 NULL 值“NULL”值files_list.append((order_id, op_id, file, None))
1054 (42S22): Unknown column 'None' in 'field list'
答:
0赞
SomeRandomDude111
9/29/2023
#1
我通过添加一个变量和两个语句来找到一个不太优雅的解决方案来解决我的问题if
def blocks_files(self, db, order_id, op_id, file_ids, images):
"""Creating record in blocks_files table."""
files_list = []
files_list_no_imgs = []
keys = list(images.keys())
for file in file_ids:
if str(file) in keys:
images_list = str()
for i in range(len(images[str(file)])):
images_list += '%s, ' % str((images[str(file)])[i])
files_list.append((order_id, op_id, file, images_list))
else:
files_list_no_imgs.append((order_id, op_id, file))
try:
logging.debug(
"Inserting data in blocks_files table."
)
cursor = db.cursor()
if files_list:
query = (
f"INSERT INTO {self.FILES_TABLE}"
f"(order_id, op_id, file_id, imgs)"
f"VALUES {(', '.join(map(str, files_list)))};"
)
cursor.execute(query)
if files_list_no_imgs:
query = (
f"INSERT INTO {self.FILES_TABLE}"
f"(order_id, op_id, file_id)"
f"VALUES {(', '.join(map(str, files_list_no_imgs)))};"
)
cursor.execute(query)
db.commit()
cursor.close()
logging.debug(
"Data inserted successfully!"
)
except connector.Error as err:
logging.error(err)
评论
NULL