【发布时间】:2011-04-01 12:59:08
【问题描述】:
我最近发现了 YAML,结果证明它是我项目的绝佳格式(我正在创建一个基于文本的 RPG)。它完美地处理了我需要的一切——区域文件(带有 desc、出口、objs、npcs 等的房间)、脚本文件、npc 文件、目标文件……它可以解决所有问题!只有一件事......
当更新这些文件中的值时,我当然需要将它们写回磁盘以保留更改。不幸的是,YAML 的dump() 方法确实把事情搞得一团糟。首先它将所有键按字母顺序排列,然后似乎每行放置一对 k:v。这有效地将一个 5 行的文件变成了 94 行。
我尝试使用 write() 将 YAML 对象写回磁盘,但它抛出了
TypeError: 需要一个字符缓冲区对象
在我身上。 Pickle 会保存它,但我认为这会破坏数据的 YAML 特性。在没有dump() 的情况下,有没有保存 YAML 对象的好方法?我听说过 SQLite,它会和 YAML 一样工作吗?我几乎没有数据库经验,但似乎 YAML 对象基本上是数据库。是否值得重新编码所有内容以使用 SQLite?与我现在遇到的问题不同,用它保存更改的值是否容易?
这里的任何帮助都会很棒。我非常喜欢 YAML。我挣扎了很长时间,试图找到一种方法来存储我的游戏所需的所有数据,当我找到 YAML 时,它就像天使合唱团在它上面唱着他们的荣耀时发出圣光一样——所以你可以理解如果我首先想知道一种不使用dump() 将 YAML 数据保存到磁盘的方法。如果没有,欢迎提出建议!
【问题讨论】: