我正在创建一个Django应用,我需要导入几个*.csv
个文件。
这个文件中的一个有这个结构:
id|value (header)
12|¤this is the
value¤
34|¤this is another
value¤
我使用此代码解析文件:
try:
csvfile = open(path, "r", encoding='utf-16')
except IOError:
return False
cursor.copy_from(csvfile , tblname, columns=['id', 'value'], sep='|')
但是当我尝试解析这个文件时,它给了我这个错误:
psycopg2.DataError: ERROR: missing data for the column "value"
有没有办法解析这个文件,在文本标识符('¤'
)内保留回车符?
答案 0 :(得分:0)
您可以使用Pythons csv
模块来阅读。
import csv
try:
csvfile = open(path, newline='')
except IOError:
return False
csvreader = csv.reader(csvfile, delimiter='|', quotechar='¤')
for row in csvreader:
print(', '.join(row)) # or do something else with the row of data.
答案 1 :(得分:0)
一种方法是自己建立条目,如下所示:
blocks = []
block = []
with open('input.csv') as f_input:
for row in f_input:
if '|' in row:
if len(block):
blocks.append(''.join(block).strip('\n').split('|'))
block = []
block.append(row)
else:
block.append(row)
if len(block):
blocks.append(''.join(block).strip('\n').split('|'))
print(blocks)
这将生成一个块列表,如下所示:
[['id', 'value (header)'], ['12', '¤this is the\nvalue¤'], ['34', '¤this is another\nvalue¤']]