簡體   English   中英

模塊 'avro.schema' 沒有屬性 'parse'

[英]module 'avro.schema' has no attribute 'parse'

我是 python 的新手,我試圖編寫一個簡單的代碼來將文本文件轉換為 avro。 我收到該模塊未找到的錯誤。 我可以在 schema.py 文件中清楚地看到 parse 模塊存在。 如果有人能幫助我理解我可能做錯了什么,我將不勝感激。

import avro.schema, csv, codecs
from avro.datafile import DataFileReader, DataFileWriter
from avro.io import DatumReader, DatumWriter


def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs):
# csv.py doesn't do Unicode; encode temporarily as UTF-8:
csv_reader = csv.reader(utf_8_encoder(unicode_csv_data),
                        dialect=dialect, **kwargs)
for row in csv_reader:
    # decode UTF-8 back to Unicode, cell by cell:
    yield [unicode(cell, 'utf-8') for cell in row]

def utf_8_encoder(unicode_csv_data):
for line in unicode_csv_data:
    yield line.encode('utf-8')

schema = avro.schema.parse(open('C:/test/test.avsc', "rb").read())

我在 Windows 10 上使用 Python 3.5.2,avro-python3-1.8.1。

您從他們的教程中獲得了 avro 代碼示例,但不幸的是它沒有針對avro-python3更新。

代替:

schema = avro.schema.parse(open('file.avsc', "rb").read())

您需要以文本模式讀取文件,並使用Parse()方法:

schema = avro.schema.Parse(open('file.avsc', "r").read())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM