我从文件中获取了一些数据,如下所示:
[200, "Hello", "World"]
现在,因为这是一个文件,所以这个数组在一个字符串中;我使用eval()
将其转换为数组。
这工作正常,但开始时的整数转换为ascii char,而不是我想要的整数(欧元符号)。
我该如何解决这个问题?
答案 0 :(得分:2)
您可以使用simplejson模块。 E.g。
>>> import simplejson
>>> a = simplejson.loads('[200, "Hello", "World"]')
>>> print a
[200, 'Hello', 'World']
这样就不会评估os.execvp()
等“恶意”数据,但会抛出JSONDecodeError
。
答案 1 :(得分:2)
您可以使用literal_eval
。真的取决于源 - 是说Python或JSON的源 - 它们有相同的表示形式有很多重叠
>>> from ast import literal_eval
>>> literal_eval('[200, "Hello", "World"]')
[200, 'Hello', 'World']