首页 > 解决方案 > 将字符串数组转换为数组 Python

问题描述

'[[[-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  ...\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]]\r\n\r\n [[-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  ...\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]]\r\n\r\n [[-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  ...\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]]\r\n\r\n ...\r\n\r\n [[-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  ...\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]]\r\n\r\n [[-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  ...\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]]\r\n\r\n [[-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  ...\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]\r\n  [-2048 -2048 -2048 ... -2048 -2048 -2048]]]'

我有一个像上面这样的字符串数组。我怎样才能删除所有“'”(我的意思是我希望它只转换为数组类型而不是字符串数组。)

我想要一个看起来像这样的数组:

[[[-2048, -2048,-2048, ...,  -2048, -2048, -2048], [-2048, -2048, -2048, ..., -2048, -2048, -2048]  [-2048 -2048 -2048 ... -2048 -2048 -2048]  ...  [-2048 -2048 -2048 ... -2048 -2048 -2048]  [-2048 -2048 -2048 ... -2048 -2048 -2048] [-2048 -2048 -2048 ... -2048 -2048 -2048]][[-2048 -2048 -2048 ... -2048 -2048 -2048]  [-2048 -2048 -2048 ... -2048 -2048 -2048] [-2048 -2048 -2048 ... -2048 -2048 -2048]  ...  [-2048 -2048 -2048 ... -2048 -2048 -2048] [-2048 -2048 -2048 ... -2048 -2048 -2048]]]

标签: python

解决方案


这可能有点矫枉过正,但解析它的一种安全方法是使用例如定义自定义解析器pyparsing

from pyparsing import *

num_expr = Word('-' + nums, nums).setParseAction(lambda t: int(t[0]))
array_expr = nestedExpr('[', ']', num_expr)

d = '[[[-2048 -2048]\r\n [-2048 -2048]]]'
print(array_expr.parseString(d).asList()[0])
# [[[-2048, -2048], [-2048, -2048]]]

推荐阅读