【发布时间】:2016-10-29 17:13:43
【问题描述】:
我目前正在从 API 获取数据,我想将这些数据存储为 csv。
但是,有些行总是无效的,这意味着我无法通过 Excel 的 text-in-columns 功能拆分它们。
我按如下方式创建 csv 文件:
with open(directory_path + '/' + file_name + '-data.csv', 'a', newline='') as file:
# Setup a writer
csvwriter = csv.writer(file, delimiter='|')
# Write headline row
if not headline_exists:
csvwriter.writerow(['Title', 'Text', 'Tip'])
# Build the data row
record = data['title'] + '|' + data['text'] + '|' + data['tip']
csvwriter.writerow([record])
如果您在 Excel 中打开 csv 文件,您也会立即看到该行无效。有效的采用默认高度和整个宽度,无效的采用更高的高度但更小的宽度。
有人知道这个问题的原因吗?
【问题讨论】:
-
看起来您并没有告诉 excel 使用管道
|作为分隔符。它可能试图使用其他东西并破坏东西。此外,您根本没有利用 csvwriter - 您正在手动构建行并将它们写为纯字符串。csv会让你给它一个字典映射和一个字典/字典列表,并根据键编写。看看csv.DictWriter,如果它变得更大。 -
record = data['title'] + '|' + data['text'] + '|' + data['tip']是 1 列而不是 3 列