簡體   English   中英

Python CSV追加新行

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

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