如何 return 石墨烯中的字典列表?

how to return a list of dictionary in graphene?

我是 graphql 的新手,正在处理一些作为字典列表返回的数据集。

代码段:

class Player(ObjectType):
    username = String()
    role = String()

class Game(ObjectType):
    players = List(Player)

我想知道为什么下面的代码不起作用?

class Query(ObjectType):
        game_info = Field(Game, username=String(), role=String())
        
        def resolve_game_info(self, info):
            results =  [{
                        "username":"Malphite",
                        "role":"tank"
                        },
                        {
                        "username":"Teemo",
                        "role":"support"
                      }]
            output = []
            for res in results:
                 output.append(
                    Player(
                      username=res['username'],
                      role=res['role']
                    )
                  )

            return output

我如何在 graphql 中查询:

query {
  game_info(username:"Teemo") {
    players {
      username
      role
    }
  }
}

喜欢这样的结果:

{
  "data": {
    "gameInfo": null
  }
}

如有任何帮助,我们将不胜感激!

问题似乎出现在 returned 数据的格式中。假设,您的 Game 中有更多字段,而不仅仅是 players。无法将这些字段包含在您的 return 格式中。

而不是return output

尝试:return {'players':output}