簡體   English   中英

如何在python中將字符串dict轉換為dictonary

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM