转义字符串中的括号 python fstrings

Escaping brackets in strings python fstrings

我正在尝试替换以下字符串中名为 id 的变量

query = '''SELECT ?item ?itemLabel WHERE {?item wdt:P279* wd:Q7930989. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }}'''

我想做类似的事情

id = "wd:Q7930989"    
query = f'''SELECT ?item ?itemLabel WHERE {?item wdt:P279* {id}. SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }}'''

当我尝试 运行 上面的代码时,我 运行 出现了像 KeyError: '?item wdt’ 这样的错误 我认为这可能是由于括号已经在字符串中。理想情况下,我想要一种方法来转义这些括号,以便我可以将 {id} 插入到字符串中。

有什么想法吗?

尝试将语句分解为更简单的部分。它看起来更干净,这将是使用 f-strings 的重点。

否则,如果需要对f字符串中的“{”进行转义,可以使用“{{”。 例如

s = "{{{0}" # is "{0"
s = "{0}}}" # is "0}"