我打開一個檔案并用 csv 讀取它,我試圖將內容移動到一個函式,以便它可以在其他程式中以這種格式重復使用:
my-dic = []
with open('customer.csv','r') as input_file:
csv_reader = csv.reader(input_file,delimiter = ',')
for line_number, line in enumerate(csv_reader):
if line_number == 0: # skip the header
continue
def customer_file():
my_dic.append({
'First Name':line[1],
'Last name':line[2],
'Age(Years)':int(line[3]),
})
customer_file()
csv 檔案有 100 行和 ! 我期望為所有行創建字典。呼叫該函式時只創建檔案的最后一行。我讀到這是后期系結,我必須通過在函式中使用默認引數來強制早期系結。我傳遞了 line_number = 1, 作為函式中的引數,以便它從 csv 檔案的 line_number 1 開始,這也不起作用
如何實作這一點,以便在呼叫該函式時,創建的字典將包含 csv 檔案的所有行,而不僅僅是最后一行
uj5u.com熱心網友回復:
如果您希望簡化您的問題,您可以使用串列理解來獲得所需的解決方案next(csv_reader),以便跳過回圈的第一次迭代。
import csv
with open('customer.csv','r') as input_file:
csv_reader = csv.reader(input_file,delimiter = ',')
next(csv_reader) # Skip header
my_dic = [{"First Name": line[0], "Last Name": line[1], "Age(Years)": int(line[2])} for line in csv_reader]
print(my_dic)
我還將提供與您提供的類似的解決方案,因為我無法假設您對 Python 語言有一定的了解。將不需要使用函式來附加到您的my_dic字典,所以我已經消除了它。您可能需要調整資料所在的索引,因為我正在處理我創建的示例資料。
import csv
my_dic = []
with open('customer.csv','r') as input_file:
csv_reader = csv.reader(input_file,delimiter = ',')
next(csv_reader) # Skip header
for n, line in enumerate(csv_reader):
print(line)
my_dic.append({
'First Name':line[0],
'Last name':line[1],
'Age(Years)':int(line[2]),
})
print(my_dic)
根據評論更新
import csv
def dic_append(line):
my_dic.append({"First Name": line[0], "Last Name": line[1], "Age(Years)": int(line[2])})
my_dic = []
with open('customer.csv','r') as input_file:
csv_reader = csv.reader(input_file, delimiter = ',')
next(csv_reader) # Skip header
for line in csv_reader:
dic_append(line)
print(my_dic)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358037.html
