【问题标题】:How to remove parenthesis from a csv export python如何从 csv 导出 python 中删除括号
【发布时间】:2017-09-13 18:07:08
【问题描述】:

所以我有一个学校作业来创建一个 GUI,它允许我将学生添加到我创建的数据库中。我想出了如何搜索学生,但我正在努力添加学生。我需要将此数据导出到 CSV 文件。我已经成功地导出了它,但它带有逗号、语音标记和括号,这是我不想要的。这是我到目前为止不起作用的部分的代码:

def reveal(self):
    firstname = ("Forename: ", self.forename_entry.get())
    lastname = ("Surname: ", self.surname_entry.get())
    gender_ = ("Gender: ", self.gender_entry.get())
    birthdate = ("DOB: ", self.DOB_entry.get())
    Student_ID = ("Student ID Number: ", self.studentID_entry.get())
    home = ("Address: ", self.address_entry.get())
    phone = ("Home phone number: ", self.homephone_entry.get())
    group = ("Tutor Group: ", self.tutorgroup_entry.get())
    school_email = ("School Email", self.sch_email_entry.get())

    with open("StudentIDs.csv", "a") as f:
        w = csv.writer(f, quoting = csv.QUOTE_ALL)
        writeit = (['\n', firstname, '\n', lastname, '\n', gender_, '\n', birthdate, '\n', Student_ID, '\n', home, '\n', phone, '\n', group, '\n', school_email])
        w.writerow(writeit)
        self.invalidtext.configure(text = "Student added")

【问题讨论】:

  • (thing, other_thing) 不是字符串连接;您可能对print(thing, other_thing) 打印两件东西的方式感到困惑,就好像它们被一个空格连接一样。字符串连接是+(尽管你需要确保你有字符串)。
  • user2357112 通过将 ',' 替换为 '+' 我得到一个错误:TypeError: Can't convert 'tuple' object to str implicitly
  • 我可以相应地看到writeitEdit 你的问题的输出。 注意:在用户名前使用@,以确保您的评论到达用户!
  • @stovfl 哦,对不起。我是新手,我不会问很多问题。但是你的输出看起来像这样:“('Forename:','TEST15')”,“,”('Surname:','TEST15')“,”,“,('Gender:','TEST15 ')",","('DOB: ', 'TEST15')"," ","('学生证号码: ', 'TEST15')"," ","('地址: ', 'TEST15 ')",","('家庭电话号码:', 'TEST15')"," ","('导师组:', 'TEST15')"," ","('学校邮箱', ' TEST15')"

标签: python python-3.x csv


【解决方案1】:

tuple 更改为dict

class csv.DictWriter(f, fieldnames, restval=”, extrasaction=’raise’, dialect=’excel’, *args, **kwds)
创建一个像普通编写器一样操作但将字典映射到输出行的对象。
fieldnames 参数是一个键序列,用于标识传递给 writerow() 方法的字典中的值写入文件 f 的顺序。

record ={}
record["Forename"] = self.forename_entry.get()
record["Surname"] = self.surname_entry.get()
... an so on

with open("StudentIDs.csv", "a") as f:
    w = csv.DictWriter(f, fieldnames=list(record.keys()))
    if firstRow:
        w.writeheader()
    w.writerow(record)

【讨论】:

    猜你喜欢
    • 2019-12-09
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2015-06-10
    相关资源
    最近更新 更多