python - 如何使用 python 请求使用 graphql 上传文件?

标签 python graphql

我有一个通过 Insomnia 生成的 curl 代码,它工作正常。我只是想不出用 python 请求复制它。

curl --request POST \
  --url MY_SERVER_URL \
  --header 'Accept: application/json' \
  --header 'Content-type: multipart/form-data; boundary=---011000010111000001101001' \
  --header 'Authorization:  AUTH_TOKEN' \
  --form 'operations={
  "query": "mutation($file: Upload!, $path: String!, $private: Boolean) { uploadFile(file: $file, path: $path, private: $private) }",
  "variables": {
    "file": null,
    "path": "test",
    "private": false
  }
}' \
  --form 'map={ "0": ["variables.file"] }' \
  --form '0=@E:\Development\Technology\Python\small_utilities\barwis\random-files\files\csvs\above serious.csv'

谢谢

最佳答案

我找到了解决方案。如果有人有同样的问题,这里是引用代码。

file = open('FILE_PATH', 'rb')
auth_headers = {
  "Authorization": f"Bearer {token}"
}

query = """
  mutation($file: Upload!, $path: String!, $private: Boolean) { 
      uploadFile(file: $file, path: $path, private: $private) 
  }
  """
  
variables = { 
    "file": None,
    "path": 'test',
    "private": True
}  

operations = json.dumps({
  "query": query,
  "variables": variables
})

map = json.dumps({ "0": ["variables.file"] })
  
response = requests.post(graphql_url, data = {
    "operations": operations,
    "map": map
  },
  files = {
    "0" : file
  },
  headers = auth_headers
)

关于python - 如何使用 python 请求使用 graphql 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68033437/

相关文章:

python - Keras:改变学习率

javascript - 使用 Strapi 获取所有单一类型页面的 GraphQL 查询

javascript - Apollo : `updateQuery` not working properly with `subscribeToMore` 中自动 UI 更新的问题

python - 将 CSV 转换为 GeoJSON 时如何删除不需要的双引号

python时间间隔算法求和

python - 将列表中所有元素相加但不包括第一个偶数的函数

python - SqlAlchemy:如何在 mysql 中制作 LONGBLOB 列?

go - 使用 Apollo Client 和 graphql-go 的 Graphql 查询错误为 'Unknown type Int'

graphql - 通过 GraphQL API 显示 100 多个条目

javascript - 错误 : Cannot use GraphQLSchema "[object GraphQLSchema]" from another module or realm