[英]how to convert string dict to dictonary in python
a= {'Locator__creation_date': {'start': datetime.date(2013, 11, 14), 'end': datetime.date(2013, 11, 14)}, 'Locator__employed': u'True', 'Locator__employer_state': u'AL', 'Locator__receiving_hiv_treatment': u'True', 'Locator__hiv_treatment_state': u'AR', 'Locator__mental_health_provider': u'False', 'Locator__parole': u'True', 'Locator__parole_state': u'IA', 'data_model_name': ['Locator']}
ast.literal_eval(a)
它给
ValueError: malformed string
想必你的意思是a
是一个字符串:
a = "{'Locator__creation_date': {'start': datetime.date(2013, 11, 14), 'end': datetime.date(2013, 11, 14)}, 'Locator__employed': u'True', 'Locator__employer_state': u'AL', 'Locator__receiving_hiv_treatment': u'True', 'Locator__hiv_treatment_state': u'AR', 'Locator__mental_health_provider': u'False', 'Locator__parole': u'True', 'Locator__parole_state': u'IA', 'data_model_name': ['Locator']}"
这不起作用,因为datetime.date(...)
不是Python文字。 它是Python datetime.date()
对象的表示,而ast.literal_eval()
不处理任意类型。
只有 Python文字值( {...}
用于字典或集合, [...]
用于列表, (...)
用于元组,数字用于数字和字符串文字,例如u'...'
和r'...'
和'...'
与各种报价变化)处理。 请参阅Python表达式文档的ast.literal_eval()
部分和ast.literal_eval()
文档本身:
提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,dicts,布尔值和
None
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.