jon*_*han 5 python graphql graphene-python
我正在研究石墨烯库(https://github.com/graphql-python/graphene),我试图了解如何将嵌套的 json 序列化/返回到石墨烯中并以正确的方式执行查询。
我将在下面插入的代码遵循存储库中可用链接的示例(位于问题末尾)。
import graphene
from graphene.types.resolver import dict_resolver
class User(graphene.ObjectType):
id = graphene.ID()
class Meta:
default_resolver = dict_resolver
class Patron(graphene.ObjectType):
id = graphene.ID()
name = graphene.String()
age = graphene.Int()
user = User
class Meta:
default_resolver = dict_resolver
class Query(graphene.ObjectType):
patron = graphene.Field(Patron)
@staticmethod
def resolve_patron(root, info):
return Patron(**{"id":1, "name": "Syrus", "age": 27, "user": {"id": 2}})
schema = graphene.Schema(query=Query)
query = """
query something{
patron {
id
}
}
"""
if __name__ == "__main__":
result = schema.execute(query)
print(result.data)
Run Code Online (Sandbox Code Playgroud)
这个想法基本上是能够使用多级 json 来“解析”graphql。这个例子很简单,在我规划的实际用例中,json中会有几个层次。
我认为如果你在 json 的最低级别使用 setattr 并向上,它是有效的,但我想知道是否有人已经实现或找到了更实用的方法。
原始示例: https ://github.com/graphql-python/graphene/blob/master/examples/simple_example.py