改行を含む文字列を含むcsvファイルがいくつかあります。ファイルはExcelで問題なく開きますが、csv.DictReader()を使用してファイルを読み込もうとすると、csv.DictReader()は、文字列内の各改行を、キャリッジを無視するのではなく、新しいデータ行として処理するように見えます。文字列内で区切ります。
最初のテストと同じように、以下の2番目のテストに合格するにはどうすればよいですか?
#csv contents
this, is, a, test
1,2,u'thr\nee',4
5,6,7,8
result = []
text = """this, is, a, test
1,2,u'three',4
5,6,7,8"""
b = StringIO(text)
reader = csv.DictReader(b)
for row in reader:
result.append(row)
self.assertEqual(2,len(result))
expected = [{'this': '1', ' test': '4', ' is': '2', ' a': "u'three'"}, {'this': '5', ' test': '8', ' is': '6', ' a': '7'}]
self.assertEqual(expected ,result)
#With a /n inside the string.
result = []
text = """this, is, a, test
1,2,u'thr\nee',4
5,6,7,8"""
b = StringIO(text)
reader = csv.DictReader(b)
for row in reader:
result.append(row)
self.assertEqual(2,len(result))
#expected = [{'this': '1', ' test': '4', ' is': '2', ' a': "u'thr\nee'"}, {'this': '5', ' test': '8', ' is': '6', ' a': '7'}]
#self.assertEqual(expected,result)