defaultdict のタイプが always<type 'list'>
の場合、次を使用できます。
from collections import defaultdict
s = """
defaultdict(<type 'list'>, {'actual': [20000.0, 19484.0, 19420.0], 'gold': [20000.0, 19484.0, 19464.0]})
"""
data = eval(s.replace("<type 'list'>", 'list'))
人々は、それは危険で悪質だと言うでしょeval()
うが、誰かがあなたがダンプしたデータに有害なコードを挿入しようとしていた場合、おそらくあなたのソース コードを簡単に編集できてしまうでしょう。このデータを取得するテキスト ファイルがソース コードよりもアクセスしやすい場合は、この方法を使用しないことをお勧めします。
defaultdicts に複数の型があるが、それらがすべて組み込み型である (またはrepr
と型名の間で簡単に変換できる) 場合でも、このメソッドを複数の置換で使用できます。次に例を示します。
for rep, typ in ((repr(list), 'list'), (repr(dict), 'dict')):
s = s.replace(rep, typ)
data = eval(s)