如何解决大括号“ {”和“}”的Python字符串格式问题
query = """
{
scripts(developers: "1") {
...
...
}
}
"""
Q。。如何使用Python字符串格式化技术更改 developers
的值?
到目前为止我尝试过的,
1。使用f字符串
In [1]: query = f"""
...: {
...: scripts(developers: "1") {
...:
...: ...
...: ...
...: }
...: }
...: """
File "<fstring>",line 2
scripts(developers: "1") {
^
SyntaxError: invalid Syntax
2。使用.format()
方法
In [2]: query = """
...: {
...: scripts(developers: "{dev_id}") {
...:
...: ...
...: ...
...: }
...: }
...: """
...:
...: query.format(dev_id=123)
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-2-058a3791fe41> in <module>
9 """
10
---> 11 query.format(dev_id=123)
KeyError: '\n scripts(developers'
解决方法
使用double-curly-brace而不是single-curly-brace在f字符串中写一个字面大括号:
dev_id = 1
query = f"""
{{
scripts(developers: "{dev_id}") {{
...
...
}}
}}
"""
print(query)
# {
# scripts(developers: "1") {
#
# ...
# ...
# }
# }
,
使用f字符串/格式,您必须将每个花括号都翻倍才能逃脱它。
您可以尝试使用%格式:
query = """
{
script(developers: %s) {
...
}
}
""" % 1
或者更好地研究类似https://github.com/graphql-python/gql的graphql库
query = gql("""
{
script(developers: $dev) {
...
}
}
""")
client.execute(client.execute(query,variable_values={'dev': 1})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。