【问题标题】:Formatting strings to csv将字符串格式化为 csv
【发布时间】:2019-06-03 04:52:15
【问题描述】:

我正在尝试将 python 中的字典中的键和值写入 csv 文件。我正在获取写入输出,但我想对其进行格式化,使其不包含任何 '[]' 或 '"'。当我尝试时:

with open(datafile, 'w', newline='', encoding='utf8') as csvfile:
    # Tab delimited to allow for special characters
    datawriter = csv.writer(csvfile, delimiter='\t')
    dic = {'2017-03-07': '36939142', '2014-02-19': '13193909'}
    for key in dic.keys():
        date = key
        order_number = dic[key]
        row = [date, order_number]
        datawriter.writerow([row])

我正在寻找 csv 文件中的输出看起来像。 2017-03-07, 36939142。但是在输出中:['2017-03-07, '36939142']。

如何格式化它以获得预期的输出?

【问题讨论】:

  • 可以加入行再写,', '.join(row)
  • 您解释了为什么在代码中的注释中使用制表符作为分隔符,但又期望行用逗号分隔?如果您希望 dict 的每个项目显示为由两个值组成的制表符分隔行,只需将最后一行更改为 datawriter.writerow(row)(注意删除了 row 周围的方括号)。否则,我不明白在创建您的作家时设置delimiter='\t' 的意义......

标签: python python-3.x export-to-csv


【解决方案1】:

尝试datawriter.writerow(', '.join(row)) 作为最后一行。现在,您正在将数据作为数组写入 csv 文件。 ', '.join(ar) 语法将数组的每个部分放在括号中,并用逗号将它们连接在一起

【讨论】:

    【解决方案2】:

    试试这样的:

    with open(datafile, 'w', newline='', encoding='utf8') as csvfile:
        # Tab delimited to allow for special characters
        datawriter = csv.writer(csvfile, delimiter='\t')
        dic = {'2017-03-07': '36939142', '2014-02-19': '13193909'}
        for key in dic.keys():
            datawriter.writerow("%s, %s" % (key, dic[key]))
    

    【讨论】:

      【解决方案3】:

      如果您想继续使用您的解决方案,您可以将最后一行更改为

      row = f"{date}, {order_number}"
      

      【讨论】:

        【解决方案4】:

        在python 3中你可以如下实现

        with open(datafile, 'w', newline='', encoding='utf8') as csvfile:
            # Tab delimited to allow for special characters
            datawriter = csv.writer(csvfile, delimiter='\t')
            dic = {'2017-03-07': '36939142', '2014-02-19': '13193909'}
            for key,value in dic.items():
                datawriter.writerow("{0}, {1}".format(key,value))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-16
          • 2014-10-15
          • 2010-10-07
          • 2014-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多