如何从 python 字典创建 avro 架构
How to create a avro Schema from a python dict
我有一个 python 定义 avro 模式属性的字典:
schema_dict = {
'type': 'record',
'name': 'the_name',
'fields': [{'name':'id', 'type':'string'}, {'name':'value', 'type':'integer'}]
}
如何从中创建 avro.schema.Schema
的实例?
examples 使用 avro.schema.parse
,它假定模式定义为 JSON 格式字符串。我没有那个。我可以完成将 dict 写入 JSON 并对其进行解析的繁琐操作,但是是否有更直接的方法从该数据构建模式?
avro.schema.Parse
需要序列化 JSON,但不要求它来自文件。所以你只需要序列化你的字典,你可以使用 json.dumps()
.
所以在你的情况下:
schema_parsed = avro.schema.Parse(json.dumps(schema_dict))
怎么样
avro.schema.parse(json.dumps(schema_dict))
应该可以。
如果你已经有了字典格式的 make_avsc_object
(在 json.loads()
之后由 parse
内部调用)。
所以您只需执行以下操作:
from avro.schema import make_avsc_object
parsed_schema = make_avsc_object(schema_dict)
我有一个 python 定义 avro 模式属性的字典:
schema_dict = {
'type': 'record',
'name': 'the_name',
'fields': [{'name':'id', 'type':'string'}, {'name':'value', 'type':'integer'}]
}
如何从中创建 avro.schema.Schema
的实例?
examples 使用 avro.schema.parse
,它假定模式定义为 JSON 格式字符串。我没有那个。我可以完成将 dict 写入 JSON 并对其进行解析的繁琐操作,但是是否有更直接的方法从该数据构建模式?
avro.schema.Parse
需要序列化 JSON,但不要求它来自文件。所以你只需要序列化你的字典,你可以使用 json.dumps()
.
所以在你的情况下:
schema_parsed = avro.schema.Parse(json.dumps(schema_dict))
怎么样
avro.schema.parse(json.dumps(schema_dict))
应该可以。
如果你已经有了字典格式的 make_avsc_object
(在 json.loads()
之后由 parse
内部调用)。
所以您只需执行以下操作:
from avro.schema import make_avsc_object
parsed_schema = make_avsc_object(schema_dict)