You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python gql与psycopg2实现带字符串变量的GraphQL查询

实现GraphQL查询年份参数的灵活配置

问题场景

原有Python代码中GraphQL查询的from和to年份是固定值(2020、2024),需要改为通过变量动态配置,方便快速修改年份范围。

修改后的代码实现

import requests

# 定义可灵活调整的年份变量
start_year = "2020"
end_year = "2024"

# 使用f-string动态替换查询中的固定年份
query = f"""
query {{
  yearlyData(
    from: "{start_year}",
    to: "{end_year}"
  ) {{
    year
    value
  }}
}}
"""

# 发送GraphQL请求
api_url = "https://api.example.com/graphql"
response = requests.post(api_url, json={"query": query})
print(response.json())

关键说明

  • 变量注入方式:采用Python的f-string格式化语法(字符串前缀加f),直接将start_year和end_year变量嵌入查询语句,语法简洁且可读性强。
  • 语法合规性:由于GraphQL中from/to参数要求为字符串类型,所以在格式化时给变量包裹了双引号"{start_year}",确保生成的查询语句符合GraphQL语法规范。
  • 灵活性提升:后续只需修改代码开头的start_year和end_year变量值,即可快速调整查询的年份范围,无需改动查询语句主体。

备选方案(兼容Python 3.5及以下版本)

如果使用的Python版本不支持f-string,可以使用str.format()方法实现:

query = """
query {{
  yearlyData(
    from: "{start}",
    to: "{end}"
  ) {{
    year
    value
  }}
}}
""".format(start=start_year, end=end_year)

内容的提问来源于stack exchange,提问作者sylar_80

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 05:28:15