簡體   English   中英

如何使用 python 從 Avro 文件中打印特定列

[英]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.

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