Python Создать файл Avro из списка диктовок - PullRequest
0 голосов
/ 08 октября 2018

У меня есть Python 3.6 и установлен Avro 1.8.2 https://avro.apache.org/docs/1.8.2/gettingstartedpython.html для работы с файлами Avro

pip install avro-python3

Но я не смог найти вариант, как создать файл Avro за один разиз существующего списка словарей.

import avro.schema
from avro.datafile import  DataFileWriter
from avro.io import DatumWriter

schema = avro.schema.Parse(open("user.avsc", "rb").read())

writer = DataFileWriter(open("users.avro", "wb"), DatumWriter(), schema)
writer.append({"name": "Alyssa", "favorite_number": 256})
writer.append({"name": "Ben", "favorite_number": 7, "favorite_color": "red"})
writer.close()

Предположим, у меня уже был объект списка:

l = [
    {u'favorite_color': None, u'favorite_number': 256, u'name': u'Alyssa'},
    {u'favorite_color': u'red', u'favorite_number': 7, u'name': u'Ben'}
    ]

Я не хочу добавлять его один за другим в цикле

for i in l:
   writer.append(i)

Я хотел бы сделать это за один раз, так как fastavro lib может:

# Writing
with open('user.avro', 'wb') as out:
   writer(out, parsed_schema, records)

Pls, как это можно сделать с помощью avro 1.8.2 lib

...