我知道這是一個被廣泛討論的話題,即使有類似的問題,我也沒有找到涵蓋我的特定案例的問題。
我有一個 csv 檔案,如下所示:
alarm_id,alarm_incident_id,alarm_sitename,alarm_additionalinfo,alarm_summary
"XXXXXXX","XXXXXXXXX","XXXXX|4G_Availability_Issues","TTN-XXXX","XXXXXXX;[{"severity":"CRITICAL","formula":"${XXXXX} < 85"}];[{"name":"XXXXX","value":"0","updateTimestamp":"Oct 27, 2021, 2:00:00 PM"}];[{"coName":{"XXXX/XXX":"MRBTS-XXXX","LNCEL":"XXXXXX","LNBTS":"XXXXXXX"}}]||"
它有更多的線,但這是故障線。如果您注意到,第五個欄位中有幾個引號和逗號,它們也是分隔符。引號也是單引號而不是雙引號,雙引號通常用于表示應保留在欄位中的引號字符。這樣做是在使用 pandas.read_csv() 方法讀取時將最后一個欄位拆分為幾個欄位,這會引發額外欄位的錯誤。我已經嘗試了幾個關于在 pandas.read_csv() 中參考的配置和引數,但沒有一個作業......
csv 格式錯誤,我只是想知道是否有辦法仍然閱讀它,即使使用迂回的方式,或者它真的只是無望。
編輯:這可能發生在不止一列,我永遠不知道這可能發生在哪一列
感謝您的幫助。
uj5u.com熱心網友回復:
我想我已經得到了你要找的東西,至少我希望如此。您可以正常讀取檔案,在 csv 檔案中創建行串列。然后遍歷lines變數并將其分成 4 部分,因為 csv 中有 4 列。
with open("test.csv", "r") as f:
lines = f.readlines()
for item in lines:
new_ls = item.strip().split(",", 4)
for new_item in new_ls:
print(new_item)
現在您可以遍歷每一行的列專案并執行您擁有/想做的任何事情。
uj5u.com熱心網友回復:
如果您的所有行欄位始終用引號括起來,您可以嘗試在 上拆分行",",并洗掉初始和終止引號。當前行被正確分隔:
row = line.strip('"').split('","', 4)
但是由于您的初始檔案格式不正確,您將不得不手動控制它匹配所有行...
uj5u.com熱心網友回復:
不能發表評論,所以只能發帖:
一種選擇是轉義內部引號/逗號,或使用正則運算式。
此外,pandas.read_csv 有一個參考引數,您可以在其中調整它對參考的反應,這可能很有用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/349655.html
上一篇:Python3流字串替換
