首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何写入具有空行的列的CSV文件

如何写入具有空行的列的CSV文件
EN

Stack Overflow用户
提问于 2021-10-25 15:34:20
回答 2查看 55关注 0票数 0

enter image description here file.csv ={“名字”:“基兰”,“姓”:“威尔逊”,“年龄(年)”:"89",“性别”:“男性”,“退休”:“真实”,“婚姻状况”:“结婚或民事伴侣”,“家属”:"3“},{”名“:”瑞安“,”姓“:”克拉克“,”年龄(年)“:"23",“性别”:“男性”,“退休”:“假”,“婚姻状况”:“结婚或民事伴侣”,“家属”:“”},{“名字”:“克莱夫”,“姓氏”:“埃文斯”,“年龄(年)”:"67",“性别”:“男性”,“退休”:“真”,“婚姻状况”:“单身”,“家属”:“”}

代码语言:javascript
复制
with open("file.csv",mode='a') as myfile:
     myfile=csv.writer(myfile,delimiter=",")
     for line_number,line in enumerate(myfile):
           if line[10] == "":
               myfile.writerow("N/A")
     print(my_file)

注意:这实际上是一个较大的数据集,"dependants“CSV文件的原始标题为line10,列中有一些空行,我希望将这些空行替换为"N/A”。

EN

回答 2

Stack Overflow用户

发布于 2021-10-25 15:57:39

你所拥有的不是csv,而是JSON文件。如果你想把它写到一个文件中,你可以这样做:

  1. 将空白替换为“N/A”
  2. 获取字符串属性并将其写入文件。

注意,我将一起用作namevar filecv。

1.

代码语言:javascript
复制
for aDict in filecsv:
    for key,val in aDict.items():
        if val== " ":
            aDict[key] = "N/A"

代码语言:javascript
复制
with open("file.csv",mode='a') as myfile:
         myfile.write(filecsv.__str__())
票数 0
EN

Stack Overflow用户

发布于 2021-10-25 16:00:46

因为您的输入是一个字典列表,所以使用csv.DictWriter比使用csv.Writer更好。而且,与在写入文件的过程中截获无效值相比,更简单的做法是预先修复数据。这段代码还有一些其他问题,最重要的是循环中的line是一个字典,但是您通过索引访问它,就好像它是一个列表一样。

正如其中一条注释所指出的那样,除非您定义了某个名为file的对象,否则调用变量file.csv是一个语法错误。

首先,使用可工作的名称创建字典:

代码语言:javascript
复制
file_csv =[ { "First Name": "Kieran", "Last Name": "Wilson", "Age (Years)": "89", "Sex": "Male", "Retired": "True", "Marital Status": "married or civil partner", "Dependants": "3" }, { "First Name": "Ryan", "Last Name": "Clarke", "Age (Years)": "23", "Sex": "Male", "Retired": "False", "Marital Status": "married or civil partner", "Dependants": " " }, { "First Name": "Clive", "Last Name": "Evans", "Age (Years)": "67", "Sex": "Male", "Retired": "True", "Marital Status": "single", "Dependants": " " } ]

然后修复空白列以包含N/A

代码语言:javascript
复制
for row in file_csv:
    for k,v in row.items():
        if v == " ":
            row[k]="N/A")

这将处理所有可能包含空白的列,并且您可能会发现更多数据会出现这种情况。

您的代码对文件和csv.Writer对象都使用了myfile。这不是个好主意。除非你知道你要追加到一个已有的文件,否则使用w而不是a

代码语言:javascript
复制
with open("file.csv",mode="w") as myfile:
    mywriter = csv.DictWriter(myfile,delimiter=",",fieldnames=file_csv[0].keys())
    mywriter.writeheader()
    mywriter.writerows(file_csv)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69710906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档