我有这个:
x = "[['ATRM', 'SIF', 'NWPX'], ['NAV','SENEA'], ['HES','AGYS', 'CBST', 'GTIM', 'XRSC']]"
x
是一个字符串。
我想要这个:
x = [['ATRM', 'SIF', 'NWPX'], ['NAV','SENEA'], ['HES','AGYS', 'CBST', 'GTIM', 'XRSC']]
其中x
是一个列表
我通常会使用eval
或ast.literal_eval
,但这些函数不可用。有什么想法吗?也许我可以用re
,但我不知道怎么用
在我看来,您需要在这里编写自己的小解析器,例如:
使用一些测试断言:
其思想是首先将字符串标记为值和命令,然后将其转换为实际列表。
我承认这是一个非常僵硬和有限的答案,因为它只适用于基于示例文本的给定信息:
它的主要工作原理是,当存在“],”的实例时,可以通过拆分字符串来判断列表的结尾。大部分代码只是通过删除不需要的尾随字符(如括号、引号和空格)来清理单词。重申一下,只有在以下情况下,这才有效:
这是一个奇怪的解决方法,但如果用双引号替换单引号,则可以始终使用json解析器
相关问题 更多 >
编程相关推荐