Python中无法用f-string将变量值传入GraphQL查询的问题
问题解决方法
你的问题出在没有将整个三重引号字符串标记为f-string,导致内部的f"{name}"被当成了普通文本内容,而非变量替换表达式。
正确写法
只需在三重引号前加上f前缀,同时因为GraphQL语法本身包含大括号{},需要在f-string里用双重大括号{{}}表示普通大括号,避免和变量占位符冲突:
name = "harsha" query = f"""mutation {{ createUsers(input:{{ user_name: "{name}" }}) {{ users{{ user_name }} }} }} """
可选替代方案(使用str.format())
如果你更习惯传统字符串格式化方式,也可以用format()方法实现变量注入:
name = "harsha" query = """mutation {{ createUsers(input:{{ user_name: "{}" }}) {{ users{{ user_name }} }} }} """.format(name)
内容的提问来源于stack exchange,提问作者daylightisminetocommand
相关产品推荐
相关产品推荐

