Python Formulas模型以JSON格式文件导出导入

1. 导入formulas和json包

在加载模型之前,导入formulas和json包。

bash 复制代码
import formulas, json

2. 加载Excel模型

加载一个公式复杂的Excel模型,该模型耗时较长,我们可以观察使用json格式是否能更高效。

python 复制代码
xl_model = formulas.ExcelModel().load('./workbook.xlsx').finish()

3. 导出为JSON文件

将模型转化为可JSON化的字典(dict)类,然后通过json.dumps输出到json文件中。

python 复制代码
xl_dict = xl_model.to_dict()  # To JSON-able dict.

with open('./xl_model.json', 'w', encoding='utf-8') as model_out:
    json.dump(xl_dict, model_out, ensure_ascii=False, indent=True) # to JSON, and save it to a file.

4. 导入JSON文件

读取JSON格式Excel模型文件,并以字典(dict)方式加载模型。事实上效果和直接加载Excel是一样的,耗时也差不多。

python 复制代码
data = {}
with open('./xl_model.json', 'r', encoding='utf-8') as model_in:
    data = json.load(model_in)
loaded_model = formulas.ExcelModel().from_dict(data)  # From JSON.    

5. 计算示例

python 复制代码
# model calculation
cal_res = loaded_model.calculate(
    inputs={
        "'[workbook.xlsx]管道计算 (混凝土管道简化指标)'!B3": 280
    },
    outputs=[
        "'[workbook.xlsx]管道计算 (混凝土管道简化指标)'!AJ3"
    ]
)
print(cal_res["'[workbook.xlsx]管道计算 (混凝土管道简化指标)'!AJ3"].value[0, 0])

计算结果:771.4635658334801

python 复制代码
cal_res = loaded_model.calculate()
print(cal_res["'[workbook.xlsx]管道计算 (混凝土管道简化指标)'!AJ3"].value[0, 0])

计算结果:792.8609135167501

相关推荐
hhzz1 小时前
【YOLO 入门到精通 04】理解任务与模型家族:7 大 CV 任务与 YOLO26 选型指南
人工智能·python·深度学习·yolo·计算机视觉
Escalating_xu1 小时前
【Python】使用库:标准库、第三方库、pip、项目实战与程序打包
java·python·pip
水獭比特1 小时前
Agent 工具审批不止一个按钮:用 v0.22.1 复盘入口、恢复和副作用
人工智能·python
库拉镜像AI牛牛1 小时前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
律宏阔1 小时前
Flutter 列表图片内存优化:CachedNetworkImage 与 ClipRRect 的取舍
前端·flutter
行者全栈架构师1 小时前
【鸿蒙心迹】相册文搜图工程化落地:HarmonyOS 7.0 端侧 AI 检索全链路实战与 5 个踩坑解法
前端
律宏阔1 小时前
Dart 3 Record:解决 Future.wait 异构返回值的类型问题
前端·flutter
苦瓜打怪兽2 小时前
leetcode 热题100(11. 盛最多水的容器)
python·算法·leetcode
Seraphina362 小时前
DVWA(XSS Reflected/Stored High,CSRF Low)
前端·xss·csrf
砚底藏山河2 小时前
量化实战:回测数据底座快照与版本管理进阶
java·大数据·python·金融·maven