在python中创建GraphQL查询

时间:2020-04-08 19:48:40

标签: python graphql

我想修改此字符串:

query = """
    mutation { 
     productUpdate(input: {id: "gid://shopify/Product/463...03", title: "test", descriptionHtml: "Amazing product"}) {
       product {
         id
       }
       userErrors {
         field
         message
        }
      }
     }
  """

我正在尝试在“测试”和“惊人的产品”的位置放置一个变量。通常,我会使用f字符串执行此操作,但是由于GraphQL括号,我无法执行此操作。

有人知道如何解决此问题吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以将花括号加倍以将它们转义:

my_title = "The Title"
my_description = "The description"

query = f"""
    mutation {{ 
     productUpdate(input: {{id: "gid://shopify/Product/463...03", title: "{my_title}", descriptionHtml: "{my_description}"}}) {{
       product {{
         id
       }}
       userErrors {{
         field
         message
        }}
      }}
     }}
  """

https://docs.python.org/3/reference/lexical_analysis.html#formatted-string-literals

答案 1 :(得分:0)

虽然字符串很好,但在进行graphql查询时,您可以使用以下格式。

query = """
    mutation { 
     productUpdate(input: {id: "gid://shopify/Product/463...03", title: "%s", descriptionHtml: "%s"}) {
       product {
         id
       }
       userErrors {
         field
         message
        }
      }
     }
  """ % ('test', 'Amazing Product')

print(query)