当前正在使用以下命令:
python foo.py "['A,B,C,D','A,B,C','A,B','A']"
我想将其转换为实际的字符串数组:
A[0] = 'A,B,C,D'
A[1] = 'A,B,C'
A[2] = 'A,B'
A[3] = 'A'
此刻,我一直在尝试使用json.loads()
和sys
将字符串读入对象或列表中。
但是,似乎单引号引起了以下错误。
ValueError: No JSON object could be decoded
但是,没有单引号,我结束了数组:
B = ["A","B","C","D","A","B","C","A","B","A"]
如何使Python忽略内部逗号,同时跟踪外部逗号,以便产生上面显示的A
中给出的字符串数组?
答案 0 :(得分:1)
您可以使用ast.literal_eval
来...
安全地评估表达式节点或包含Python的字符串 表达。提供的字符串或节点只能由以下内容组成 Python文字结构:字符串,字节,数字,元组,列表,字典, 设置,布尔值和无。
>>> from ast import literal_eval
>>> literal_eval("['A,B,C,D','A,B,C','A,B','A']")
['A,B,C,D', 'A,B,C', 'A,B', 'A']