2015-10-10 82 views
-1

我目前已經做出了一個小程序,它將轉到一個網站(API)並讀取訪問的網站。Python3 - 列表和分割

這是進來的數據:

b'364100,749,23389954\n651718,40,37236\n-1,1,0\n264361,69,706507\n266425,68,622098\n164967,73,1091472\n-1,1,0\n191592,70,770992\n4766,99,14061919\n1901400,1,25\n27878,90,5642168\n1733031,1,20\n35862,61,303870\n348752,40,40202\n327185,40,37294\n373555,40,37437\n1762482,1,0\n265521,40,37650\n697009,1,64\n1804628,1,0\n1735100,1,0\n322506,9,1000\n1739499,1,0\n1716356,1,0\n-1,-1\n-1,-1\n-1,-1\n' 

我試圖把這個清單但那是不可能的。 那麼我怎樣才能刪除所有的\ n和b'和'到底,所以我可以把所有這些數字放到一個列表中?

+1

'23389954 \ n6517181'應該是'23389954651718'或'23389954'和'651718'? –

+0

它們應該是相互分離的,例如\ n給an,我希望能夠將所有這些數字放入列表中,比如list = [] list.append(x),其中x是檢索到的數據。 – Zhendos

+0

是否有該API的任何文檔?使用換行符和逗號作爲分隔符的混合似乎很奇怪,除非它們帶有不同的含義。 (這可能是多行,每行都用逗號分隔值,或多個逗號分隔值,其中每行都可能有多行)。 –

回答

0

如果我明白你在做什麼,你可以使用string.split將字符串分隔成一個列表。您還可以使用string.strip刪除前導字符和尾隨字符。

例如:

list = string.strip("'b").split("\n") 

list

['364100,749,23389954', '651718,40,37236', '-1,1,0', '264361,69,706507', '266425,68,622098', '164967,73,1091472', '-1,1,0', '191592,70,770992', '4766,99,14061919', '1901400,1,25', '27878,90,5642168', '1733031,1,20', '35862,61,303870', '348752,40,40202', '327185,40,37294', '373555,40,37437', '1762482,1,0', '265521,40,37650', '697009,1,64', '1804628,1,0', '1735100,1,0', '322506,9,1000', '1739499,1,0', '1716356,1,0', '-1,-1', '-1,-1', '-1,-1', ''] 

希望這有助於!

+1

「b」不是他的字符串的一部分,這是字符串的Python 3符號(與Unicode字符串相反)。所以你的答案中的'.strip(''b')'部分是不必要的。 – rmunn

+0

啊,哎呀。應該想到的是,我並沒有使用python。 – ricky3350

1

如果我們有

data = b'364100,749,23389954\n651718,40,37236\n-1,1,0\n264361,69,706507\n266425,68,622098\n164967,73,1091472\n-1,1,0\n191592,70,770992\n4766,99,14061919\n1901400,1,25\n27878,90,5642168\n1733031,1,20\n35862,61,303870\n348752,40,40202\n327185,40,37294\n373555,40,37437\n1762482,1,0\n265521,40,37650\n697009,1,64\n1804628,1,0\n1735100,1,0\n322506,9,1000\n1739499,1,0\n1716356,1,0\n-1,-1\n-1,-1\n-1,-1\n' 

,並且希望在空白分裂(包括b'\n'):

data_as_list = data.split() 

如果你想在逗號分割

data_as_list = data.split(b',') 

在這兩種情況下, ,結果將是一個bytes對象的列表。如果你想要的字符串,這樣做

data_as_list = data.decode('ascii').split() 

data_as_list = data.decode('ascii').split(',') 

(注意分隔符','是一個字符串現在,而直接在bytes工作時,我們使用了bytes分離b','