私は、このようなファイルから、いくつかのデータを取得しています:これはファイルであることから、この配列は内部で、今文字列のPythonのevalの整数を、整数を返す
[200, "Hello", "World"]
文字列; eval()
を使って配列に変換します。 これはうまく動作しますが、開始時の整数は整数ではなくascii charに変換されます(ユーロ記号)。
どうすればこの問題を解決できますか?
私は、このようなファイルから、いくつかのデータを取得しています:これはファイルであることから、この配列は内部で、今文字列のPythonのevalの整数を、整数を返す
[200, "Hello", "World"]
文字列; eval()
を使って配列に変換します。 これはうまく動作しますが、開始時の整数は整数ではなくascii charに変換されます(ユーロ記号)。
どうすればこの問題を解決できますか?
simplejsonモジュールを使用できます。例えば。このようos.execvp()
として
>>> import simplejson
>>> a = simplejson.loads('[200, "Hello", "World"]')
>>> print a
[200, 'Hello', 'World']
この方法で「悪質な」データは評価されないだろうが、JSONDecodeError
がスローされます。
literal_eval
を使用できます。本当にソースに依存します - PythonやJSONを話す源である - 彼らはこれが私のためにうまく働いた同じ表現
>>> from ast import literal_eval
>>> literal_eval('[200, "Hello", "World"]')
[200, 'Hello', 'World']
を持つ重複がたくさんあります。 >>> z = eval( "[200、\" hello \ "、\" world \ "]」) >>> z [200、 'hello'、 'world'] – Grim
@Judge John Deed ascii char?どのアスキーチャー?私はあなたが何を記述するのか観察しない – eyquem