微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

f字符串中未包含“'”的已解压缩列表的解压缩

如何解决f字符串中未包含“'”的已解压缩列表的解压缩

我正在尝试使用列表理解功能来制作sql query。首先,我采用这样的列名称

COLUMNS_ONE = ["id INT(6)","firstname VARCHAR(30)"]
COLUMN_NAMES_ONE = [name.split(" ")[0] for name in COLUMNS_ONE]
print(COLUMN_NAMES_ONE)

>>> ["id","firstname"]

接下来,我要像这样为sql query制作一个MysqL变量

f"INSERT INTO {TABLE_NAMES[0]} ({*COLUMN_NAMES_ONE,}) VALUES (%s,%s)"

会抛出

You have an error in your sql Syntax; check the manual that corresponds to your MariaDB server version for the right Syntax to use near '('id','firstname')) VALUES (6,'marcel')' at line 1

说插入的query不是(id,firstname),而是('id','firstname')。 是否有办法以某种方式摆脱该'

解决方法

您可以改用join()

COLUMNS_ONE = ["id INT(6)","firstname VARCHAR(30)"]
COLUMN_NAMES_ONE = [name.split(" ")[0] for name in COLUMNS_ONE]

f"INSERT INTO Table ({','.join(COLUMN_NAMES_ONE)}) VALUES (%s,%s)"

# 'INSERT INTO Table (id,firstname) VALUES (%s,%s)'
,

您可以通过,加入该列表:

print(f"INSERT INTO Table ({',%s)")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。