马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
某天,我心血来潮,想在json文件中存储大量数据
众所周知,renpy自带了JSONDB
以下是文档地址:
https://doc.renpy.cn/zh-CN/python.html#jsondb 其用法如下:[RenPy] 纯文本查看 复制代码 class JSONDB(filename, default=None) link
我个人觉得非常不好用,或许是我自己太笨,在论坛也没有找到类似的教程
于是我打算用另一种办法:
在python中使用renpy.input("data.json")打开json文件,再使用json.loads,于是乎
map_data.json:
[RenPy] 纯文本查看 复制代码 {
"locations": {
"map": {
"text": "家",[mw_shl_code=renpy,true]init python:
import json
# 加载 JSON 文件的函数
def load_json(file_path):
with renpy.open_file(file_path, encoding="utf-8") as f:
return json.load(f)
# 使用 `default` 声明全局可存储变量
default location_data = load_json( "json/map_data.json")["locations"]
label start:
# 访问并显示 JSON 数据中的键值
$ home_text = location_data["map"]["text"]
"Home Text: [home_text]"
"location": "x street",
"person": true
}
}
}[/mw_shl_code]
script.rpy:
诶!好像还可以,接下来,进一步添加可以修改json中内容的功能:
[RenPy] 纯文本查看 复制代码 # 修改 JSON 数据
$ location_data["map"]["text"] = "家没了"
$ home_text = location_data["map"]["text"]
"Updated Home Text: [home_text]"
这个时候,你还可以遍历json,很简单,用python的办法:
[RenPy] 纯文本查看 复制代码 python:
for key,value in location_data["map"].items():
print(key,value)
优雅!(自认为)
|