[英]Python CSV append new row
所以這是我的問題,我為列表創建了一個Dictionary,並嘗試添加找到的數據並將其追加到每一行,但只是將其追加到具有相同數據類型的同一列。
我如何得到它,以便每個新的追加添加到新行。
data_dict = {'contact name': [], 'name': [], 'telephone': [], 'email': [],
'mobile': [], 'feedback average': []}
try:
data_dict['telephone'].append(soup.find('span',itemprop='telephone').text)
except AttributeError:
data_dict['telephone'].append('No telephone')
print data_dict
field_names = fn = data_dict.keys()
with open('./file.csv','w') as csvfile:
f = csv.DictWriter(csvfile, fieldnames=fn)
f.writeheader()
f.writerow(data_dict)
嘗試這樣的事情:
data_dict = {'contact name': [], 'name': [], 'telephone': [], 'email': [],
'mobile': [], 'feedback average': []}
try:
data_dict['telephone'].append(soup.find('span',itemprop='telephone').text)
except AttributeError:
data_dict['telephone'].append('No telephone')
print data_dict
fn = data_dict.keys()
with open('./file.csv','w') as csvfile:
f = csv.reader(csvfile)
for row in f:
for i in len(fn):
data_dict[fn[i]].append(row[i])
如果我說對了,這應該對您有用。 但是請注意,這要求csv中的一行以正確的順序准確包含字典中的元素。
如果不是這種情況,則需要找出哪個值寫在哪個列中,然后將該列的值添加到字典中的列表中。
所以你需要更換
for i in len(fn):
data_dict[fn[i]].append(row[i])
通過
for k in fn:
data_dict[k].append(row[columns[k]])
其中column是一個字典,包含與data_dict相同的鍵,而作為值的列是將特定鍵的數據存儲在csv文件中的列。 例如,列可能如下所示:
columns = {'contact name': 1, 'name': 3, 'telephone' : 6, 'email': 7, 'mobile':8, 'feedback average': 2}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.