python - 将字符串数组转换为数组 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]]]
解决方案
这可能有点矫枉过正,但解析它的一种安全方法是使用例如定义自定义解析器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]]]
推荐阅读
- xamarin.forms - 自定义条目控件中的 BindableProperty 问题
- angular - Angular:自定义 FormControl 在 FormGroup.reset() 之后不更新视图
- modal-dialog - Symfony 4:以模态显示动态值
- azure - Azure appservice 添加 webjob 失败
- c# - 控制台应用程序后台服务中 httpclientfactory 的 DI
- python-3.x - 如何检查列表值是否存在于也是列表的列值中
- c++ - 将 unique_ptr 设置为前向声明类型的解决方法
- excel - 在 VBA 中清除另一个工作表中的过滤器后,将数据复制并粘贴到新工作表中
- react-native - 使用 expo 弹出应用程序后的问题
- php - 将 cURL 请求转换为 PHP