首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据作为字典输出到新的python文件中

将数据作为字典输出到新的python文件中
EN

Stack Overflow用户
提问于 2011-08-08 05:09:43
回答 3查看 181关注 0票数 1

我喜欢在一个较长的python程序之后将我的数据存储为新脚本中的字典。这样,我就可以轻松地导入程序(以及数据),以便进行进一步的操作。

我写了这样的东西(一个旧的例子):

代码语言:javascript
运行
复制
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 = {}
'''

接下来是以字符串形式输入字典代码的大量麻烦:

代码语言:javascript
运行
复制
print>>file, 'd[\'%s\'] = {}'               %st

我想知道是否有一个模块可以自动完成这一点,因为它会节省我很多时间。

谢谢

编辑:知道这些字典通常有几层深,就像我今天使用的字典一样,这可能会很有用:

代码语言:javascript
运行
复制
d[ratio][bound][charge] = a_list
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-08 05:15:47

我不确定这是否是你想要的,但是尝试一下内置的函数repr。

代码语言:javascript
运行
复制
repr(a)
票数 1
EN

Stack Overflow用户

发布于 2011-08-08 05:13:26

除非您有需要源代码的特定原因--我怀疑没有,您只是想序列化和反序列化磁盘中的数据--更好的选择是Python的pickle module

票数 2
EN

Stack Overflow用户

发布于 2011-08-08 10:20:40

reprLossy's suggestion恰好可以工作,但是repr不是专门为序列化设计的。我认为使用专门为此目的设计的工具会稍微更健壮一些;而且既然您想要的是人类可读的和-editable的东西,那么json是显而易见的选择。

代码语言:javascript
运行
复制
>>> 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'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6975808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档