如何用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
相关产品推荐
相关产品推荐

