[英]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.