1
我已经阅读了这个论坛上关于这个特定错误的不少其他帖子,但没有什么能真正帮助我解决我的问题。python:ast.literal_eval()给出ValueError:格式错误的字符串
基本上我有这样的事情:
{' Marie ': ' (ENG,80) (PHY,65) (CHEM,80) '}
我想上面的转换为:
[(ENG,80),(PHY,65),(CHEM,80)]
,这样我可以访问元组的各等级并将它们添加并返回结果。
我尝试迄今已有:
>>> N={' Marie ': ' (ENG,80) (PHY,65) (CHEM,80) '}
>>> q= N.items()
>>> q
[(' Marie ', ' (ENG,80) (PHY,65) (CHEM,80) ')]
>>> r=N.values()[0]
>>> r
' (ENG,80) (PHY,65) (CHEM,80) '
>>> y=r.strip().split()
>>> y
['(ENG,80)', '(PHY,65)', '(CHEM,80)']
>>> remove=",".join(y)
>>> remove
'(ENG,80),(PHY,65),(CHEM,80)'
>>> list(ast.literal_eval(remove))
ValueError: malformed string
我怎样才能达到预期的效果? 是否可以直接从字典中这样做?
字符串应该用' ''或'“' – thefourtheye
''(ENG,80),(PHY被封闭,65 ),(CHEM,80)''不是一个有效的文字,因为'ENG'和'PHY'和'CHEM'没有被引用,它们不是字符串,它们是Python代码中的*名称,但名称不是字面意思语法 –