This question already has answers here:
Why does json.loads() work on some strings? [duplicate]
                                
                                    (2个答案)
                                
                        
                        
                            Single vs double quotes in JSON
                                
                                    (10个回答)
                                
                        
                                2年前关闭。
            
                    
当前正在使用以下命令:

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

最佳答案

您可以使用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']

关于python - 使用json.loads()/Python时是否忽略引号中的逗号? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52802227/

10-11 02:30
查看更多