2017-06-08 4 views
-2

Pythonの特定の文字を除いて、 "、"で文字列を分割する方法は?私は'AA、AB'を除いて "" によってそれらを分割する必要がPythonの特定の文字を除いて "、"で文字列を分割する方法は?

('00012+1357','LSC 2','Aa,Ab',2014,2014, 2,185,185, 0.2, 0.2,10.7,13.1,'M0.5',+019,+135,NULL,NULL,NULL,NULL,'000113.19+135830.3') 

: 私のデータは次のようです。

結果は次のようになります。

("00012+1357" "LSC 2" "Aa,Ab" "2014" "2014" "2" "185" "185" "0.2" "0.2" "10.7" "13.1" "M0.5" "+019" "+135" "NULL" "NULL" "NULL" "NULL" "000113.19+135830.3") 

あなたはそれを行う方法を知っていますか?

+5

私はしますが、あなたが試したものは何ですか。 – Pythonista

+0

あなたのデータはタプルのように見えます......あなたは正確に何をしようとしていますか? '参加する '? – depperm

+2

このデータは 'string'か' list'ですか? – KelvinS

答えて

0

あなたが '' .join()を探していることが表示されます:あなたがCSVデータを解析しようとしている表示されます

the_string = ('00012+1357','LSC 2','Aa,Ab',2014,2014, 2,185,185, 0.2, 0.2,10.7,13.1,'M0.5', 19, 135, 'NULL','NULL','NULL','NULL','000113.19+135830.3') 

the_string = map(str, the_string) 

new_string = (' '.join(i for i in the_string)) 
0

csvモジュールは十分以上のもので、これらのエッジケースをすべて処理できる必要があります。

0

私はいくつかのコードで刺すでしょう。 の外にある場合は、文字列をneedleで分割します。 needlequotesの両方が1文字であると仮定します。

#!python3 

def splitExceptBetween(istr, needle, quotes): 
    inside = -1 
    res = [] 
    oldt = 0 
    for index, letter in enumerate(istr): 
     if letter==quotes: 
      inside = -inside 
     elif letter==needle and inside == -1: 
      res.append(istr[oldt:index]) 
      oldt = index+1 
    if oldt<len(istr): 
     res.append(istr[oldt:]) 
    return res 

istr = "as'das'd.asdas'd.a'sdas.drth..rt'h.r'th.'" 
print(splitExceptBetween(istr, ".", "'")) 
istr = "00012+1357,LSC 2,'Aa,Ab',2014,2014, 2,185,185, 0.2, 0.2,10.7,13.1,M0.5,+019,+135,NULL,NULL,NULL,NULL,000113.19+135830.3" 
print(splitExceptBetween(istr, ",", "'")) 
関連する問題