我有畸形字符串:转换字符串元组与dict
a = '(a,1.0),(b,6.0),(c,10.0)'
我需要dict
:
d = {'a':1.0, 'b':6.0, 'c':10.0}
我尝试:
print (ast.literal_eval(a))
#ValueError: malformed node or string: <_ast.Name object at 0x000000000F67E828>
然后我尝试替换字符来'string dict'
,它很丑并且不起作用:
b = a.replace(',(','|{').replace(',',' : ')
.replace('|',', ').replace('(','{').replace(')','}')
print (b)
{a : 1.0}, {b : 6.0}, {c : 10.0}
print (ast.literal_eval(b))
#ValueError: malformed node or string: <_ast.Name object at 0x000000000C2EA588>
你是做什么的?有什么遗漏?有可能使用regex
?
那么字符串是商场形式的,因为每个元组的第一个元素不是一个字符,而是一个“a”(这是一个标识符)。 –
是的,我认为这是主要问题。 – jezrael
给定的字符串是否总是具有上述格式?人们确实可以使用正则表达式修复字符串,但是如果输入格式未指定,则正则表达式替换有点危险。 –