2012-10-31 41 views

回答

4

沒有

找到爲什麼會有這樣一個特定的標記,以及爲什麼它會被使用的原因是什麼?

您可以添加一個輕鬆

# file: literal_eval.py 

import ast 

def literal_eval(value): 
    return ast.literal_eval(value) 

from django import template 
register = template.Library() 
register.filter('literal_eval', literal_eval) 

,您可以在模板

{% load literal_eval %} 

{{ some_str|literal_eval }} 

現在導致問題使用這樣的「爲什麼?」你會用這個做什麼?

編輯:OP表示「他想反序列化一些保存爲varchar的python字典」,在這種情況下,模板不是執行它的地方,首先將文本轉換爲字典,然後將其傳遞給模板。

,更好地重新思考正在做什麼,節約字典repr不是序列化的方式,並使用literal_eval不是反序列類型的字典,使用json.dumps或這樣的格式把詞典到數據庫,並使用json.loads轉換的方式它回到字典。你也可以使用泡菜,但我不會推薦它。

+0

問你的問題在我的問題 – jperelli

+0

對不起,我說了一些愚蠢的:)這是原因:http://stackoverflow.com/questions/13165479/how-to-deserialize-a-python-printed-dictionary – jperelli

+2

@ jperelli你不正確的做法,你不應該這樣做在模板 –

相關問題