Python CSV附加新行

时间:2015-10-06 12:48:34

标签: python python-2.7 csv

所以这是我的问题,我已经为我的列表创建了一个字典,我正在尝试添加我找到的数据并将其附加到每一行,但它只是附加到具有相同数据类型的同一列。

我怎样才能得到它,以便每个新的追加添加到新行。

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)

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

$('#btnClick').on("click", function () {
    CheckTextChange()
})

function CheckTextChange() {

    $('.txt').each(function () {

        if ($(this).val() == $(this).prop("defaultValue")) {

            alert($(this).val() + ' == ' + $(this).prop("defaultValue"));

        } else {

            alert($(this).val() + ' != ' + $(this).prop("defaultValue"));

        }
    })
}

如果我找对你,这对你有用。 但请注意,这要求csv中的一行包含字典中的元素,并且顺序正确。

如果不是这种情况,您需要找出在哪个列中写入的值,然后将此列的值添加到词典中的列表中。

所以你需要替换

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])

通过

for i in len(fn):
    data_dict[fn[i]].append(row[i])

其中columns是包含与data_dict相同的键的字典,以及作为特定键的数据存储在csv文件中的列的值。例如,列可能如下所示:

for k in fn:
    data_dict[k].append(row[columns[k]])