如何将 Graphql 查询转换为 python 字典?
Posted
技术标签:
【中文标题】如何将 Graphql 查询转换为 python 字典?【英文标题】:How to convert Graphql query to a python dictionary? 【发布时间】:2021-08-21 18:59:06 【问题描述】:我有一个从 monday.com 网站得到的查询。我正在尝试获取受人尊敬的董事会的列值,并尝试将这些值放入 python 字典中,以便稍后我可以使用某些条件进行迭代并将值更新回网站。 根据 API(Monday.com 和 GraphQL)给出的说明,我运行了这个查询来获取板的列值,但我未能将其转换为 python 字典。请帮忙! 这是我在 Graph QL API Playground 上写的查询代码:
boards(ids: 1348913462)
items(limit: 50)
id
column_values(ids: "pratica_cliente")
value
现在为了将其转换为字典,我运行了以下代码:
contents=[]
try:
with open("./r.json", 'r') as f:
contents =json.load(r)
except Exception as e:
print(e)
print(contents[:]["value"])
li = [item.get('column_values') for item in contents]
print(li)
我得到的错误是:
[Errno 2] 没有这样的文件或目录:'./r.json' 回溯(最近一次通话最后): 第 31 行,在 打印(内容[:][“值”]) TypeError: 列表索引必须是整数或切片,而不是 str
它将整个 JSON 文件作为输出返回给我,但我打算让它成为一个 python 字典,例如:
dict = id:value,
id2:value2....and so on
是的,我在堆栈、谷歌和其他地方搜索了很多,所以一些代码也是从几个地方获取的。
【问题讨论】:
【参考方案1】:这行不通,因为您没有指向json.load
的变量“r”。
with open("./r.json", 'r') as f:
contents =json.load(r)
显然“./r.json”不是文件。所以contents
永远是[]
然后您尝试使用字符串访问列表中的内容。
这就是您看到这些错误的原因。不言自明。
【讨论】:
以上是关于如何将 Graphql 查询转换为 python 字典?的主要内容,如果未能解决你的问题,请参考以下文章
如何将graphQl查询中的变量转换为内联样式或样式组件中的伪元素
将嵌套查询从 GraphQL 转换为 Graphene 不起作用