The CSV library does not correctly interpret files in the following format (test.csv):
"A" ,"B" ,"C"
"aaaaaa","bbbbbbb","cccc"
"aaaaa" ,"bbbbbb" ,"ccc"
"aaaa" ,"bbbbb" ,"cc"
This program:
import csv
from pathlib import Path
def main():
with Path('test.csv').open('rt') as csv_file:
csv.register_dialect('my_dialect', quotechar='"', delimiter=',',
quoting=csv.QUOTE_ALL, skipinitialspace=True)
reader = csv.DictReader(csv_file, dialect='my_dialect')
for row in reader:
print(row)
if __name__ == '__main__':
main()
produces the following output:
{'A ': 'aaaaaa', 'B ': 'bbbbbbb', 'C': 'cccc'}
{'A ': 'aaaaa ', 'B ': 'bbbbbb ', 'C': 'ccc'}
{'A ': 'aaaa ', 'B ': 'bbbbb ', 'C': 'cc'}
this instead is the expected result:
{'A': 'aaaaaa', 'B': 'bbbbbbb', 'C': 'cccc'}
{'A': 'aaaaa', 'B': 'bbbbbb', 'C': 'ccc'}
{'A': 'aaaa', 'B': 'bbbbb', 'C': 'cc'}
why?
Thank you,
Marco
|