[英]Reading CSV data from a file into a dictionary
我正在嘗試從 CSV 文件創建字典。 csv 文件的第一列包含唯一鍵,第二列包含值。 csv 文件的每一行代表字典中唯一的鍵值對。 我嘗試使用 csv.DictReader 和 csv.DictWriter 類,但我只能弄清楚如何為每一列生成一個新字典。 我想要一本字典。 這是我嘗試使用的代碼:
def read_data(file_name):
data = {}
with open(file_name, "r") as f:
reader = csv.reader(f, delimiter = ',')
number_columns = len(next(reader))
for d in range (number_columns):
column_data, column_name = read_column(file_name, d)
data[column_name] = column_data
return data
如果您不介意為您的數據使用二維表而不是鍵值對,則可以使用 pandas 模塊,該模塊中有一個名為 to_dict() 的有用函數,可將 CSV 轉換為字典。 所以這就是一個例子的樣子:
import pandas as pd
file = pd.read_csv(filename, sep=',') #<---- the sep arguement does the same thing as the delimiter arguement, it is short for seperater
random_dict = pd.to_dict(file)
使用csv DictReader
:
with open(file_name) as csv_file:
dictR = csv.DictReader(csv_file)
data = {hdr: [] for hdr in dictR.fieldnames}
for row in dictR:
for field in row:
data[field].append(row[field])
使用從DictReader
獲取的字段名稱構建初始data
dict
。 然后遍歷行和行中的字段。 對於每個字段 append 字段值到列表中對應於data
dict
中的字段名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.