【问题标题】:How to create a list of string from a list [duplicate]如何从列表中创建字符串列表[重复]
【发布时间】:2021-08-17 10:57:25
【问题描述】:

我有一个字符串列表如下:

['a', 'b', 'c']

我需要从中创建一个 SQL 查询。我正在编写这种查询,因为我正在为 BigQuery 使用 python 客户端,这就是这样做的方法。查询将如下所示:

WHERE data IN ('a', 'b', 'c')

我尝试过这样做:

WHERE data IN ({", ".join(myList)})

但结果是:

WHERE data IN (a, b, c)

我应该怎么做?

精确编辑

实际上我的问题是我已经在一个 f 字符串中并且不能在其中使用反斜杠来转义我的引号。我确实喜欢这样:

quote = "'"
f'WHERE gcloud_id IN ({", ".join(f"{quote}{ g_id }{quote}" for g_id in gcloud_id)}) '

谢谢

【问题讨论】:

  • 阅读您使用的任何数据库引擎的文档,您不应该使用字符串手动构建 SQL 查询。
  • 他们需要被引用,", ".join(myList.map(lambda x: f"\"{x}\"")),这也是个坏主意。
  • 看看这个在 SQLalchemy pypi.org/project/SQLAlchemy 它提供了一个构造 SQL 表达式的系统
  • @Kimor,请尝试在 SO 中搜索现有答案,因为如果问题是微不足道的或其他人普遍面临的问题,10 次中有 9 次您会找到您正在寻找的解决方案。
  • 我正在使用大查询,这是构建 SQL 查询的方式。

标签: python list


【解决方案1】:
words = ['a', 'b', 'c']

', '.join(f"'{ word }'" for word in words)

这应该可以完成工作。但是,就像评论说的那样,这是一个坏主意,因为您不应该以这种方式查询。干杯!

【讨论】:

  • 嗨,欧文,这是一个重复的问题。请尝试引导人们找到现有答案,而不是从另一个 SO 页面复制答案并添加它,因为它有助于保持网站清洁并减少冗余。
  • @AkshaySehgal 是的,我的错,甚至不知道有一个现有的答案。不过还是谢谢你的建议!
  • 再次感谢@Owenn,我正在使用 BigQuery,这是构建查询的方式。
猜你喜欢
  • 2012-12-23
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 2015-02-01
  • 1970-01-01
相关资源
最近更新 更多