在 Python 中构建 GraphQL 查询字符串的最佳方法

Tob*_*eil 12 python graphql graphene-python

我正在尝试这样做(见标题),但它有点复杂,因为我试图构建的字符串必须具有以下属性:

  • 多线
  • 包含花括号
  • 我想向其中注入变量

使用普通的''''''多行字符串会使注入变量变得困难。使用多个 f 字符串使得注入变量变得容易,但是每个花括号,其中有很多,必须加倍。并且f必须在每行之前添加一个。另一方面,如果我尝试使用format,它也会被所有的花括号混淆。

有没有更好的方法我还没有考虑过?

小智 14

可以使用"""多行字符串方法。注入变量时,请确保在定义字符串时使用$符号,并使用requests.post方法的JSON参数中的变量对象。

这是一个例子。ContactInput是我在 GraphQL 模式中定义的类型之一。

query = """
  mutation ($input:[ContactInput!]!) {
    AddContacts(contacts: $input) {
      user_id
    }
  }
"""
variables = {'input': my_arrofcontacts}
r = requests.post(url, json={'query': query , 'variables': variables})
Run Code Online (Sandbox Code Playgroud)

  • 恭喜你的第一个答案。谢谢你! (2认同)