如何在石墨烯中返回字典列表?
Posted
技术标签:
【中文标题】如何在石墨烯中返回字典列表?【英文标题】:how to return a list of dictionary in graphene? 【发布时间】:2020-11-25 14:13:07 【问题描述】:我是 graphql 的新手,正在处理一些作为字典列表返回的数据集。
sn-p 代码:
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】:问题似乎在于返回数据的格式。假设您的Game
中有更多字段,而不仅仅是players
。无法将这些字段包含在您的返回格式中。
而不是return output
。
试试:return 'players':output
【讨论】:
这可行,但有没有办法完全删除 Game?我只添加了能够返回字典列表 我认为您正在尝试为他们定义一个Game
和玩家。那么为什么要删除它们呢?如果您不需要单独使用Game
,则只需使用Players
并在其中定义game
属性即可。
如果你只是想返回列表,你不需要使用它。只需:players = graphene.List(Player,....)
而不是 game_info=graphene.Field(.....)
以上是关于如何在石墨烯中返回字典列表?的主要内容,如果未能解决你的问题,请参考以下文章