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代碼中的*名稱,但名稱不是字面意思語法 –