【发布时间】:2019-03-19 00:36:06
【问题描述】:
目前正在使用以下命令:
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 中给出的字符串数组?
【问题讨论】:
-
您的输入不是 JSON,所以...为什么要使用
json.loads? -
为什么不使用
'["A,B,C,D","A,B,C","A,B","A"]'? -
我现在找不到副本,但您正在寻找
ast.literal_eval。 -
@T.J.Crowder 我使用它是因为它适用于“[1,2,3,4]”之类的东西。这是我第一次遇到这样的问题。您能推荐我另一种使用方法吗?
标签: python json python-2.7 sys