我正在用 Python 准备一个 GraphQL 查询字符串,我需要在字符串中插入三个变量,只有一个问题。GraphQL 包含大量大括号,它会干扰 Python f 字符串的工作方式。
number = 10
owner = "me"
name = "my_repo"
query = f"""
query {
repository(owner:"{owner}", name:"{repo}") {
pullRequests(first: {number}) {
edges {
node {
state
merged
createdAt
}
}
}
}
}
"""
Run Code Online (Sandbox Code Playgroud)
上面的代码引发语法错误。所以我认为我需要完全放弃使用 f 字符串? 当 f 字符串包含与插值无关的大括号时,有没有办法在 Python 中仍然使用 f 字符串?
小智 5
您可以将所有替换{
为{{
并类似地替换所有}
为}}
,然后运行您的 f 字符串。
要转义大括号,只需在 Python 中添加另一个大括号即可。例如:
x=3
print(f'x={{{x}}}')
Run Code Online (Sandbox Code Playgroud)
那会打印x={3}
.