0
當我嘗試讀取一個上傳的csv文件,其中一個字段包含'\ n'字符時遇到問題。例如我有一個CSV文件,其內容如下:django - 如何讀取上傳的csv文件,其中一個字段包含' n'
- 第1行: 「一」, 「這是\ NSample個」
- 行2: 「兩節」, 「這也是\ NSample個」
我可以成功上傳request.FILES文件,但是當我循環文件時,該行會因爲'\ n'字符而失效。我的代碼是:
file = request.FILES.get('filename', None)
for line in file:
if line:
line = line.decode("utf-8")
fields_set = list(csv.reader([line], skipinitialspace=True))[0]
在第一循環中,變量「線」的含量爲:"one, this is"
。在第二個循環中,變量'line'獲得值「sample」。但我想要的是「one」,這是\ nsample「'。 任何幫助都很感激,在此先感謝。
使用csv.reader來csvfile直接讀取,會彈出錯誤「迭代器應該返回字符串,而不是字節(你打開文件在文本模式?)「 –
然後讓迭代器返回字符串。由於Django InMemoryUploadedFile返回字節,而不是字符串,所以csv閱讀器沒有針對這種情況進行適當的定義。你需要做一些像'f = csv.reader((x.decode('latin1')for csvfile.readlines()))'將行轉換爲字符串。 – Ivan