簡體   English   中英

使用 python csv 模塊 dictwriter 編輯 CSV 文件時遇到問題

[英]Trouble editing a CSV file using python csv module dictwriter

我正在制作一個程序,它從表單中讀取數據,將其存儲到字典中,然后使用 csv.DictWrite 將 append 數據寫入 csv 文件。 我運行程序,但我的 data.csv 文件沒有任何反應。 主程序和數據文件在同一個工作目錄下,同時安裝了 csvmodule。 這是代碼,

def response_to_csv(data):
#append w/ dictionary -> more efficiewn
with open('data.csv', 'a', newline = '') as csvfile:
    fieldnames = ['date', 'first', 'last', 'age', 'email', 'country',
             'city/town', 'Uni Student', 'Instagram','Followers','Affiliate'
    ]
    writer = csv.DictWriter(csvfile, fieldnames = fieldnames)
    writer.writeheader()
    writer.writerow({
        'date' : data['date'],
        'first': data['first'],
        'last' : data['last'],
        'age'  : data['age'],
        'email': data['email'],
      'country': data['country'],
    'city/town': data['city/town'],
  'Uni Student': data['Uni Student'],
    'Instagram': data['Instagram'],
    'Followers': data['Followers'],
    'Affiliate': data['Affiliate']
    })

這是數據字典

data = {
    'date' : date,
    'first': fname,
    'last' : lname,
    'age'  : age,
    'email': email,
    'country': country,
    'city/town': city_town,
    'Uni Student': is_Uni_Student,
    'Instagram': insta,
    'Followers': ig_followers,
    'Affiliate': affiliation
    }
response_to_csv(data)
import csv
data = {
'date' : '202001',
'first': 'Bob',
'last' : 'Smith',
'age'  : 45,
'email': 'bsmith@gmail.com',
'country': 'USA',
'city/town': 'New York',
'Uni Student': 1,
'Instagram': '@bsmith',
'Followers': 45678,
'Affiliate': 'Red Bull'
    }

def response_to_csv(data):
    fieldnames = ['date', 'first', 'last', 'age', 'email', 'country',
                 'city/town', 'Uni Student', 'Instagram','Followers','Affiliate'
        ]
    with open('data.csv', 'a', newline = '') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames = fieldnames)
        writer.writeheader()
        writer.writerow(data)

response_to_csv(data)

您的代碼對我有用,盡管我必須修復 function 主體的縮進, with open(...)不應與def response_to_csv(data)縮進相同:

import csv
def response_to_csv(data):
    #append w/ dictionary -> more efficiewn
    with open('data.csv', 'a', newline = '') as csvfile:
        fieldnames = ['date', 'first', 'last', 'age', 'email', 'country',
                 'city/town', 'Uni Student', 'Instagram','Followers','Affiliate'
        ]
        writer = csv.DictWriter(csvfile, fieldnames = fieldnames)
        writer.writeheader()
        writer.writerow({
            'date' : data['date'],
            'first': data['first'],
            'last' : data['last'],
            'age'  : data['age'],
            'email': data['email'],
          'country': data['country'],
        'city/town': data['city/town'],
      'Uni Student': data['Uni Student'],
        'Instagram': data['Instagram'],
        'Followers': data['Followers'],
        'Affiliate': data['Affiliate']
        })

data = {
    'date' : '2019_01_01',
    'first': 'firstname',
    'last' : 'lname',
    'age'  : '99',
    'email': 'email@address.com',
    'country': 'USA',
    'city/town': 'MyTown',
    'Uni Student': True,
    'Instagram': 'MyInsta',
    'Followers': 24,
    'Affiliate': 'affiliation'
}
response_to_csv(data)

$ cat data.csv
date,first,last,age,email,country,city/town,Uni Student,Instagram,Followers,Affiliate
2019_01_01,firstname,lname,99,email@address.com,USA,MyTown,True,MyInsta,24,affiliation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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