gpt4 book ai didi

python - 如何在 Python 中将 JSON 字符串转换为 Avro?

转载 作者:太空狗 更新时间:2023-10-30 00:19:58 25 4
gpt4 key购买 nike

有没有办法在 Python 中没有模式定义的情况下将 JSON 字符串转换为 Avro?或者这是只有 Java 才能处理的事情?

最佳答案

我最近遇到了同样的问题,我最终开发了一个 python 包,它可以采用任何 python 数据结构,包括解析的 JSON 并将其存储在 Avro 中,而无需专用模式。

我针对 python 3 测试了它。

您可以将其安装为 pip3 install rec-avro 或在 https://github.com/bmizhen/rec-avro 查看代码和文档

使用示例:

from fastavro import writer, reader, schema
from rec_avro import to_rec_avro_destructive, from_rec_avro_destructive, rec_avro_schema

def json_objects():
return [{'a': 'a'}, {'b':'b'}]

# For efficiency, to_rec_avro_destructive() destroys rec, and reuses it's
# data structures to construct avro_objects
avro_objects = (to_rec_avro_destructive(rec) for rec in json_objects())

# store records in avro
with open('json_in_avro.avro', 'wb') as f_out:
writer(f_out, schema.parse_schema(rec_avro_schema()), avro_objects)

#load records from avro
with open('json_in_avro.avro', 'rb') as f_in:
# For efficiency, from_rec_avro_destructive(rec) destroys rec, and
# reuses it's data structures to construct it's output
loaded_json = [from_rec_avro_destructive(rec) for rec in reader(f_in)]

assert loaded_json == json_objects()

要将 JSON 字符串转换为 json 对象,请使用 json.loads('{"a":"b"}')

关于python - 如何在 Python 中将 JSON 字符串转换为 Avro?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22382636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com