回答
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