2017-01-27 28 views
-1

私はmysqlデータベースからいくつかの結果を取得していますが、それらは角括弧で区切られた形式になっています。私は括弧を削除したい、私はストリップ関数を使用しているが、私は表示する1つの結果があるときにのみ動作します。Python-結果のリストから角括弧を削除する

以下のコードでは、要素が1つのみの検索結果に対して角括弧が削除されます。

@QtCore.pyqtSignature("on_pushButton_clicked()") 
def searchDBnumber(self): 
    searchName = self.searchInput.toPlainText() 

    if len(searchName) != 0: 
     searchForName = ("""SELECT number FROM test_table WHERE name =""" + "'"+ searchName +"'") 



     cursor.execute(searchForName) 

     result = cursor.fetchall() 

     result = str(result).strip('[](),') 
     self.number.setPlainText(result) 
+2

試してください: ''、' .join(map(repr、result))'。あなたの質問に 'print(result)'の出力を含めることができますか? – MYGz

+1

SQLクエリを作成する際に 'name =" "" + "'+ searchName +"' "'これを実行しないでください:[lil Bobby Tables](https://xkcd.com/327) –

+0

"フォーム"について、 'fetchall'はタプルのリストを返します(通常は)' 'str.join'を使ってフォーマットしなければなりません(https: //docs.python.org/3/library/stdtypes.html#str.join)と['str.format'](https://docs.python.org/3/library/stdtypes.html#str.format )@MYGzが指摘しているように、あなたのニーズに合わせて(例えば)。 –

答えて

0

結果からすべての角括弧を削除したい場合は、replace()メソッドを使用できます。構文はstring.replace(string_to_replace、string_to_replace_with)です。

例:

result = str(result).replace("()", "") 

これは、各ブラケットタイプのために行われる必要があります、私は信じています。 "[]"の別のラウンド。

すべての角括弧を削除した後、角括弧が区切り文字の場合、結果セットを個々の行に分割するのは難しいことに注意してください。

関連する問題