首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有f-string的查询格式

带有f-string的查询格式
EN

Stack Overflow用户
提问于 2016-12-18 16:34:46
回答 1查看 6.7K关注 0票数 1

我有一本很大的字典,我想插入到MySQL表中。字典键是表中的列名。到目前为止,我正在这样构建我的查询:

代码语言:javascript
复制
bigd = {'k1':'v1', 'k2':10}
cols = str(bigd.keys()).strip('[]')
vals = str(bigd.values()).strip('[]')
query = "INSERT INTO table ({}) values ({})".format(cols,vals)
print query

输出:

代码语言:javascript
复制
"INSERT INTO table ('k2', 'k1') values (10, 'v1')"

这在Python2.7中起作用。

但是在Python3.6中,如果我使用如下字符串文字:

代码语言:javascript
复制
query = f"INSERT INTO table ({cols}) values ({vals})"
print(query)

它打印这个:

代码语言:javascript
复制
"INSERT INTO table (dict_keys(['k1', 'k2'])) values (dict_values(['v1', 10]))"

有小费吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-18 16:47:11

出于好奇,您应该意识到已经将这些转换为str,将dict_keys/values的表示插入到f-string中。

您只需转换成元组,然后插入:

代码语言:javascript
复制
cols = tuple(bigd.keys())
vals = tuple(bigd.values())
q = f"INSERT INTO table {cols} values {vals}"

但是,正如评论所指出的,这并不是一个安全的方法。

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

https://stackoverflow.com/questions/41210488

复制
相关文章

相似问题

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