回答
astr是一個「以字典形式」的字符串。 ast.literal_eval
將其轉換爲python字典對象。
In [110]: import ast
In [111]: astr="{'key1':'value1','key2':'value2'}"
In [113]: ast.literal_eval(astr)
Out[113]: {'key1': 'value1', 'key2': 'value2'}
請注意,如果有'astr'可以包含'os.remove(「foo」)''的任何方法,那麼使用'eval'並不是一個好主意。實際上, – 2009-10-18 17:14:23
這是最好的,如果你對Python的2.6+,因爲它不是受制於EVAL安全漏洞。
import ast
s = """{'key1':'value1','key2':'value2'}"""
d = ast.literal_eval(s)
你搞砸了報價。外部使用雙引號。 – 2009-10-18 23:11:02
你從哪裏得到這個字符串?它是JSON格式嗎?或python字典格式?或者只是一些類似於python字典的ad-hoc格式?
如果是JSON,或者它只是字典,並且只包含字符串和/或數字,則可以使用json.loads
,這是最安全的選項,因爲它無法分析python代碼。
這種做法有一些不足之處,雖然,如果例如,該字符串用單引號'
,而不是雙引號"
,更何況,它只是解析JSON對象/數組,其中僅巧合碰巧有着相似語法與pythons dicts /數組。
雖然我認爲這可能是你得到的字符串是以JSON格式。我做這個假設是因爲它是數據交換的通用格式。
- 1. 將字符串解析爲字符
- 2. 將字符串的部分解析爲字典?
- 3. Python:將字符串列表解析爲一個字典
- 4. Python字符串和字典解析
- 5. 解析字符串轉換成字典
- 6. 解析字符串並創建字典
- 7. 解析字典串
- 8. Typescript:將字符串解析爲數字
- 9. 將xml解析爲字典
- 10. 解析字符串爲Oracle
- 11. 如何將字符串解析爲int?
- 12. 將字符串解析爲LINQ查詢
- 13. 無法將字符串解析爲int
- 14. 將整數解析爲字符串C
- 15. 如何將字符串解析爲GADT
- 16. 將字符串解析爲int
- 17. 將字符串解析爲整數
- 18. 將字符串解析爲對象
- 19. Regexp_substr將字符串解析爲片段
- 20. 將Postscript字符串解析爲int
- 21. 將字符串解析爲JSON
- 22. 將字符串解析爲XDocument
- 23. 將json對象解析爲字符串
- 24. 將字符串解析爲Double.NaN
- 25. 將XML字符串解析爲XML
- 26. JAXB - 將元素解析爲字符串
- 27. AngularJS將字符串解析爲html
- 28. 將字符串解析爲JSON /散列
- 29. 將字符串解析爲JavaScript語法
- 30. 將字符串解析爲布爾值?
保存它在哪裏/如何? – SilentGhost 2009-10-18 16:17:23
什麼?爲什麼不把dict保存爲dict而不是首先創建一個字符串?請提供一些更多的背景資料。這個問題沒有什麼意義,並表示更大和更深的問題可能導致這一點。 – 2009-10-18 19:59:51
正如Dave指出的,http://stackoverflow.com/questions/988228/converting-a-string-to-dictionary是這個 – dbr 2009-10-18 23:56:30