转义字符串中的括号 python fstrings

问题描述

我正在尝试替换一个变量

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' 之类的错误 有什么解决办法吗?

解决方法

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

否则,如果您需要在 f-string 中转义“{”,则可以使用“{{”。 例如。

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