如何在石墨烯中返回字典列表?

时间:2020-08-05 11:49:28

标签: python python-3.x graphql graphene-python

我是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
  }
}

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

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

代替return output

尝试:return {'players':output}