如何从 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)