我喜欢在一个冗长的python程序之后将我的数据存储为新脚本中的字典。这样我就可以轻松导入程序(以及数据)以便进一步操作。
我写了这样的东西(一个旧的例子):
file = open(p['results']+'asa_contacts.py','w')
print>>file, \
'''
\'''
This file stores the contact residues according to changes in ASA
as a dictionary
\'''
d = {}
'''
然后围绕字符串输入字典代码进行了大量的讨论:
print>>file, 'd[\'%s\'] = {}' %st
我想知道是否有一个模块可以自动执行此操作,因为它可以节省很多时间。
谢谢
编辑:知道这些词典通常是我今天使用的几层深度可能很有用:
d[ratio][bound][charge] = a_list
答案 0 :(得分:2)
除非你需要源代码的具体原因 - 我怀疑没有,你只想从磁盘序列化和反序列化数据 - 更好的选择是Python的pickle
module。
答案 1 :(得分:1)
我不确定这是否是您正在寻找的,但请尝试使用内置函数repr。
repr(a)
答案 2 :(得分:0)
repr
的{{3}}恰好可行,但repr
并非专门用于序列化。我认为使用专为此目的而设计的工具会稍微强一些;因为你想要一些人类可读和可编辑的东西,json
是显而易见的选择。
>>> import json
>>> animals = {'a':'aardwolf', 'b':'beluga', 'c':'civet', 'd':'dik-dik',
'e':'echidna', 'f':'fennec', 'g':'goa', 'h':'hyrax',
'i':'impala', 'j':'javelina', 'k':'kudu', 'l':'lemur',
'm':'macaque', 'n':'nutria', 'o':'orca', 'p':'peccary',
'q':'quagga', 'r':'reebok', 's':'serval', 't':'tenrec',
'u':'urial', 'v':'vole', 'w':'wallaroo', 'x':'xenurine',
'y':'yapok', 'z':'zoologist'}
>>> s = json.dumps(animals)
>>> s[:60] + '...'
'{"a": "aardwolf", "c": "civet", "b": "beluga", "e": "echidna...'
>>> animals = json.loads(s)
>>> animals['w']
u'wallaroo'