我想构建/解析一个numpy dtype字符串,例如。
dtype_string = "[('a', '<i4', (100,)), ('b', '>i4')]"
并像
一样使用它np.frombuffer(buffer, dtype=get_me_my_dtype(dtype_string))
我知道eval()可以工作(作为get_me_my_dtype()),但由于安全隐患,我不想在这里使用它。有关安全替代方案的任何建议吗?
干杯,马吕斯
答案 0 :(得分:2)
ast.literal_eval
应安全地执行此操作:
>>> import ast
>>> dtype_string = "[('a', '<i4', (100,)), ('b', '>i4')]"
>>> ast.literal_eval(dtype_string)
[('a', '<i4', (100,)), ('b', '>i4')]