[英]How to print a particular column from an Avro file using python
我有以下代碼打印 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 user in reader:
print(user)
reader.close()
我是 Avro 和大數據方面的新手
編輯:
這是更正后的代碼。 感謝@Rithin
for user in reader:
print(user['key1'])
這將返回與 'key1' 對應的所有值
從文檔:
DataFileReader 是一個迭代器,它返回與序列化項對應的字典。
由於它只返回一個字典列表,因此您可以使用row['key']
訪問它們。
將此與列表理解相結合,將產生所有行的所有值。
例子:
all_values = [row['key1'] for row in list(reader)]
print(all_values)
[value1]
要將此結果列表保存到json
,您可以:
import json
result = {'key1':all_values}
with open('output.json', 'w') as json_file:
json.dump(result, json_file)
您可以在此處閱讀有關保存到 json 的更多信息。
要將此結果列表保存到csv
,您可以:
import csv
with open('output.csv', 'w') as csv_file:
writer = csv.writer(csv_file)
writer.writerows(all_values)
您可以在此處閱讀有關使用 csv 文件的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.