将字符串转换为未引用其键的python或json字典

时间:2017-06-23 17:36:03

标签: javascript json python-2.7

想象一下python中的以下内容(使用2.7):

myString ='{key:“value”}'

“value”可以是一个简单的字符串,一个列表,一个布尔值或另一个字典,每个字典都是双引号

如果我尝试将其转换为python字典或json,我会失败,因为原始字符串中的键未被引用。

例如:

  • ast.literal_eval(myString)导致:IndentationError:意外缩进或ValueError:格式错误的字符串(取决于myString的复杂性)
  • eval(myString)导致:NameError:名称'AbsolutePath'未定义
  • json.loads(myString)导致:ValueError:期望用双引号括起的属性名称...

实际上,我从javascript中的var声明中获取此字符串,该声明正在从页面中删除。 myString可以存储一个包含50到100个条目的字典。

我不相信这与其他地方的问题是一样的,因为密钥是不加引号的,价值是。

1 个答案:

答案 0 :(得分:0)

如果您确定只有第一个没有引号,那么如果只是手动在字符串中添加引号会怎样? 像这样:

modified_strings_list=[]    
for string in string_list:
    string = string.replace('{','{"', 1)
    string = string.replace(':','":', 1)
    modified_strings_list.append(string)

然后应用eval()

通过循环strip()

,可以轻松地dict.keys()处理任何空格