1

リストとして保存したい長い文字列があります。ただし、常に最初と最後に一重引用符があります。それらを削除するには?ありがとう。

サンプル

>>> string
>>> '"2012-11-05", "filename", 1, 2, 3, 4, 5, 6, 7, 0.11, 0.22, 0.33'
>>> string.split("'")
>>> ['"2012-11-05", "filename", 1, 2, 3, 4, 5, 6, 7, 0.11, 0.22, 0.33']

質問は、一重引用符なしで以下のような結果を得るにはどうすればよいですか?

>>> ["2012-11-05", "filename", 1, 2, 3, 4, 5, 6, 7, 0.11, 0.22, 0.33]
4

3 に答える 3

8

あなたのデータは有効な python タプルのようです。

import ast

list(ast.literal_eval('"2012-11-05", "filename", 1, 2, 3, 4, 5, 6, 7, 0.11, 0.22, 0.33'))

リテラル_eval は任意のコードを評価せず、プレーンな値だけを評価するため、ast モジュールのliteral_eval 関数はプレーンな eval よりも安全です。

于 2012-11-05T06:58:43.427 に答える
3

これを試して:

[s.replace('"', '').strip() for s in string.split(',')]

>>> ['2012-11-05', 'filename', '1', '2', '3', '4', '5', '6', '7', '0.11', '0.22', '0.33']
于 2012-11-05T06:58:34.280 に答える
-1
      python 3.2

      string='"2012-11-05", "filename", 1, 2, 3, 4, 5, 6, 7, 0.11, 0.22, 0.33'
      a=eval(string)
      res=list(a)
于 2012-11-05T14:24:23.460 に答える