我是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
}
}
任何帮助将不胜感激!
答案 0 :(得分:2)
问题似乎在于返回数据的格式。假设您的Game
中有更多字段,而不仅仅是players
。无法将这些字段包含在您的返回格式中。
代替return output
。
尝试:return {'players':output}