如何使用python从Avro文件打印特定列
我有一个下面的代码,它打印了avro文件中的所有值。但是,我想打印一个特定的列 例如:如何使用python从Avro文件打印特定列,python,json,python-3.x,avro,Python,Json,Python 3.x,Avro,我有一个下面的代码,它打印了avro文件中的所有值。但是,我想打印一个特定的列 例如: {'key1': value1 , 'key2': value2} 我想打印avro中存在的“key1”的所有值 这是我的密码 from avro.datafile import DataFileReader from avro.io import DatumReader reader = DataFileReader(open("abc.avro", "rb"), DatumReader()) for
{'key1': value1 , 'key2': value2}
我想打印avro中存在的“key1”的所有值
这是我的密码
from avro.datafile import DataFileReader
from avro.io import DatumReader
reader = DataFileReader(open("abc.avro", "rb"), DatumReader())
for user in reader:
print(user)
reader.close()
我不熟悉Avro和大数据
编辑:
这是正确的代码。感谢@Rithin
for user in reader:
print(user['key1'])
这将从以下位置返回与“key1”对应的所有值:
DataFileReader是一个迭代器,返回与序列化项对应的dict
由于它只返回字典列表,因此可以使用行['key']
访问它们
将其与列表理解相结合,将得到所有行的所有值
例如:
all_值=[row['key1']用于列表中的行(读卡器)]
打印(所有_值)
要将此结果列表保存到
json
,您可以:
导入json
结果={'key1':所有_值}
将open('output.json','w')作为json_文件:
dump(结果,json_文件)
您可以阅读有关保存为json的更多信息
要将此结果列表保存到csv,您可以:
导入csv
打开('output.csv','w')作为csv\u文件:
writer=csv.writer(csv\u文件)
writer.writerows(所有_值)
您可以阅读有关使用csv文件的更多信息。您好,谢谢您的回复。我还可以将此输出转储为JSON或CSV格式吗?@ChiragSharma,用编写CSV+JSON的示例更新了答案。
[value1]