[英]How to replace special characters(double quotes to single quotes) from a list using python so that my list become a 2D list?
[英]Importing text file to 2d list in python adds single quotes
我有一個數據庫,其中包含我鳥舍中所有鸚鵡的記錄。 它還包括育種信息。 我最近在python中制作了一個腳本,可以打印出任何特定鳥類的家譜。 但是,我是通過在腳本文件中創建2D列表來實現的。 這意味着我對數據庫所做的任何更改都不會反映在程序中。 為了改善這一點,我將數據導出到txt文件中,希望將該文件作為2D列表導入到我的腳本中。
文本文件表示以逗號分隔的數據,其中第一列是鳥類的名稱,第二列是其母親,第三列是其父親。 例如:
"Myriad","Ruby","Indiana"
"Vanadium","Peeper","Jeckyll"
"Kevin","Vanadium","Manganese"
我已經閱讀了很多有關如何執行此操作的解釋,並且目前正在使用該代碼:
with open("BudgieStock.txt") as textFile:
birdList = [line.split() for line in textFile]
但是,如果我隨后打印數組,則會在每個列表周圍添加一個額外的單引號:
[[' "Myriad","Ruby","Indiana" '], [' "Vanadium","Peeper","Jeckyll" '], [' "Kevin","Vanadium","Manganese" ']]
這使我的程序停止工作。 我到處都看過,但是找不到為什么發生或如何阻止的任何解釋。
我想要的只是:
[["Myriad","Ruby","Indiana"], ["Vanadium","Peeper","Jeckyll"], ["Kevin","Vanadium","Manganese"]]
當我將列表硬編碼到腳本文件中時,該程序運行良好。 我嘗試使用以下方式刪除單引號:
[t.replace("'", "") for t in birdList]
但是收到錯誤消息,“'列表'對象沒有屬性'替換'”。
如果有人能解釋為什么會這樣以及如何解決它,我將不勝感激。 這是我第一次使用python(C ++背景)導入文件。
line.split()
按空格分割。 您想按逗號分隔。
with open("BudgieStock.txt") as textFile:
birdList = [line.split(',') for line in textFile]
另外,您還需要除去多余的引號。 我建議只將它們完全排除在您的文件之外,但是
with open("BudgieStock.txt") as textFile:
birdList = [[i.strip("\"") for i in line.split(',')] for line in textFile]
也將擺脫它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.