mirror of
https://github.com/OCA/account-reconcile.git
synced 2025-01-20 12:27:39 +02:00
[FIX] account_statement_base_import: autodetect CSV file delimiter
This commit is contained in:
@@ -106,7 +106,7 @@ class FileParser(BankStatementImportParser):
|
||||
return True
|
||||
|
||||
|
||||
def _parse_csv(self, delimiter=';'):
|
||||
def _parse_csv(self):
|
||||
"""
|
||||
:return: list of dict from csv file (line/rows)
|
||||
"""
|
||||
@@ -114,7 +114,7 @@ class FileParser(BankStatementImportParser):
|
||||
csv_file.write(self.filebuffer)
|
||||
csv_file.flush()
|
||||
with open(csv_file.name, 'rU') as fobj:
|
||||
reader = UnicodeDictReader(fobj, delimiter=delimiter, fieldnames=self.fieldnames)
|
||||
reader = UnicodeDictReader(fobj, fieldnames=self.fieldnames)
|
||||
return list(reader)
|
||||
|
||||
def _parse_xls(self):
|
||||
|
||||
@@ -22,7 +22,12 @@ import base64
|
||||
import csv
|
||||
|
||||
def UnicodeDictReader(utf8_data, **kwargs):
|
||||
csv_reader = csv.DictReader(utf8_data, **kwargs)
|
||||
sniffer = csv.Sniffer()
|
||||
pos = utf8_data.tell()
|
||||
sample_data = utf8_data.read(1024)
|
||||
utf8_data.seek(pos)
|
||||
dialect = sniffer.sniff(sample_data, delimiters=',;\t')
|
||||
csv_reader = csv.DictReader(utf8_data, dialect=dialect, **kwargs)
|
||||
for row in csv_reader:
|
||||
yield dict([(key, unicode(value, 'utf-8')) for key, value in row.iteritems()])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user