【问题标题】:How to convert Graphql query to a python dictionary?如何将 Graphql 查询转换为 python 字典?
【发布时间】: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}

是的,我在堆栈、谷歌和其他地方搜索了很多,所以一些代码也是从几个地方获取的。

【问题讨论】:

    标签: python api dictionary graphql monday.com


    【解决方案1】:

    这行不通,因为您没有指向json.load 的变量“r”。

        with open("./r.json", 'r') as f:
            contents =json.load(r)
    

    显然“./r.json”不是文件。所以contents 永远是[]

    然后您尝试使用字符串访问列表中的内容。

    这就是您看到这些错误的原因。不言自明。

    【讨论】:

      猜你喜欢
      • 2023-01-04
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2020-02-04
      • 2021-08-06
      • 2020-11-14
      • 1970-01-01
      相关资源
      最近更新 更多