用Python方便地保存和加载简单数据
我目前正在开发一个简单的Python3.4.3和Tkinter游戏 我现在很难保存/读取数据,因为我是一个编码新手 我现在所做的是使用.txt文件来存储数据,但我发现这非常违反直觉,因为保存/读取多行数据需要我有额外的代码来捕获任何换行 跳绳也很可怕 我已经在谷歌上搜索过了,但我要么找到了.txt保存/文件选项,要么太复杂了,无法保存大规模数据 我现在只需要保存一些字符串,并且能够通过键访问它们(如果可能),就像在字典中的键:value一样 你知道有什么文件格式/方法可以帮助我做到这一点吗用Python方便地保存和加载简单数据,python,python-3.x,save,persistence,Python,Python 3.x,Save,Persistence,我目前正在开发一个简单的Python3.4.3和Tkinter游戏 我现在很难保存/读取数据,因为我是一个编码新手 我现在所做的是使用.txt文件来存储数据,但我发现这非常违反直觉,因为保存/读取多行数据需要我有额外的代码来捕获任何换行 跳绳也很可怕 我已经在谷歌上搜索过了,但我要么找到了.txt保存/文件选项,要么太复杂了,无法保存大规模数据 我现在只需要保存一些字符串,并且能够通过键访问它们(如果可能),就像在字典中的键:value一样 你知道有什么文件格式/方法可以帮助我做到这一点吗 另外
另外:如果可能,应该在Win/iOS/Linux上工作。您可能想试试Redis 我不完全确定它是否能满足您的所有需求,但它可能比平面文件更好。听起来使用它最好,这是Python-2.6中的一部分+
import json
data = {'username':'John', 'health':98, 'weapon':'warhammer'}
# serialize the data to user-data.txt
with open('user-data.txt', 'w') as fobj:
json.dump(data, fobj)
# read the data back in
with open('user-data.txt', 'r') as fobj:
data = json.load(fobj)
print(data)
# outputs:
# {u'username': u'John', u'weapon': u'warhammer', u'health': 98}
一种流行的替代方法是,它实际上是json的超集,产生的结果更易于人类阅读 你不确定Redis是否能满足OP的所有需求?我想说Redis在这方面做得太过火了。我已经看过了,它是一个很好的工具,但是对于这个项目来说,它与其他内置选项相比太多了。无论如何,谢谢!:)这似乎是一个很好的解决方案,不幸的是,当我运行代码的前半部分时,它抛出了一个
TypeError:“str”不支持缓冲区接口
oops,是的,很抱歉“binary”模式在python-3中引起了问题,因为它希望string
s被正确编码。修复方法是删除b
。将更新answer@xXthruXx,现在应该可以在python3中使用了,你能再试一次吗?效果很好:)谢谢!