Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-解析字典列表的字符串_Python_String_List_Dictionary_Converter - Fatal编程技术网

Python-解析字典列表的字符串

Python-解析字典列表的字符串,python,string,list,dictionary,converter,Python,String,List,Dictionary,Converter,在上面的链接中,我有一个解析网站时收到的数据示例,是字符串形式的。它本质上是一个字典列表,里面有较小的字典 我希望能够解析这些数据,最好使用JSON。如何将此字符串转换为列表,然后将列表中的每个字典转换为json 我尝试过使用常规的列表解析,但我认为字典中所有的逗号都会把它搞乱 原始数据没有组织得这么好。它是一个没有制表符或空格的长字符串 谢谢 我找到了一个解决方案,但很麻烦。如果有人有更好的方法,请告诉我,我担心这将打破简单的改变字符串 a = '{"skuAttr"' b = d.s

在上面的链接中,我有一个解析网站时收到的数据示例,是字符串形式的。它本质上是一个字典列表,里面有较小的字典

我希望能够解析这些数据,最好使用JSON。如何将此字符串转换为列表,然后将列表中的每个字典转换为json

我尝试过使用常规的列表解析,但我认为字典中所有的逗号都会把它搞乱

原始数据没有组织得这么好。它是一个没有制表符或空格的长字符串


谢谢

我找到了一个解决方案,但很麻烦。如果有人有更好的方法,请告诉我,我担心这将打破简单的改变字符串

a = '{"skuAttr"'
    b = d.split(a)
    x=0
    for g in b:
        if x != 0:
            if (g[-1] == ","):
                g = g[:-1]

            print json.loads(('{"skuAttr"' + g))
        x+=1

基本上,它只是将字符串按我发现的最早的字符进行拆分,然后在最后添加它们,删除逗号(如果有),然后分别加载每个字典。效率低下,不耐改变,但它现在就可以工作了

您可以这样做:

import ast
my_obj = ast.literal_eval('[' + d.replace('false', 'False') + ']')

print(type(my_obj))
# prints: <class 'list'>

print(len(my_obj))
# prints: 4
导入ast
my_obj=ast.literal_eval('['+d.replace('false','false')+']'))
打印(类型(my_obj))
#印刷品:
打印(len(my_obj))
#印刷品:4

假设您在发布的链接中获得字符串输入,则会添加列表括号,因为其中的数据结构不是有效的Python。然后,您将需要使Python布尔值正确。您可能也希望对
True
执行此操作。

我将该结构复制到jsonlint中,但它不是有效的json结构。但是,您应该查看json模块来执行这项工作。如果它以[和]开头,它将是一个列表。然而,当我试图将其解析为一个列表时,它不起作用,因为字典中有字典