使用json.loads()/ Python时是否忽略引号中的逗号?

时间:2018-10-14 11:35:24

标签: python json python-2.7 sys

当前正在使用以下命令:

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中给出的字符串数组?

1 个答案:

答案 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']