python - 如何将对象保存到 JSON 列表?
问题描述
我正在使用 Python3 开发文本角色扮演游戏,并且遇到了保存对象的问题。
我可以保存字符串和整数(例如表示角色名称、统计数据等),但无法保存对象(例如物品或武器),因为我收到错误消息:
write() argument must be str, not Weapon
这是我的代码:
elif userinp == 'save':
save_place = open("rpgsave.txt", "w")
list_to_write = [strength, agility, dexterity, wisdom, intelligence, charisma,
main_character.name, main_character.weapons,
main_character.mp, main_character.xp, level_counter, job,
free_points, copcoin, cloc.xpos, cloc.ypos,
main_character.health, inventory]
for i in range(len(list_to_write)):
unacceptables = [main_character.weapons, inventory]
if list_to_write[i] in unacceptables:
if list_to_write[i] == main_character.weapons:
save_place.write(list_to_write[i])
save_place.write("\n")
elif list_to_write[i] == inventory:
objects = (Weapon, Item)
for x in range(len(inventory)):
save_place.write(inventory[x])
save_place.write("\n")
else:
list_to_write[i] = str(list_to_write[i])
save_place.write(list_to_write[i])
save_place.write("\n")
解决方案
推荐阅读
- java - SIP 和 SIPS URI 的正则表达式
- android - 如何将添加的 APK 调用到 androidthings 图像
- reactjs - 在父componentDidMount之后在React子中执行代码
- c# - 机器人框架 v4。如何清除turnContext.Activity.MembersAdded,所以再次发送欢迎消息
- java - 如何使用断点在 Google 的 Java 实现上调试本地操作?
- docker - 在 HyperLedger Composer 上部署 HyperLedger Fabric 网络
- r - 在 ggplot2 中添加动态图表标题
- windows - 对相互认证的证书使用了错误的客户端证书,如何重置?
- java - 创建虚拟请求实体对象以在模拟测试请求 .post 方法时返回
- mongodb - 如何使用猫鼬对填充的两级深子文档数组进行排序