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

1. 导入formulasjson

在加载模型之前,导入formulasjson包。

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

相关推荐
寅时码3 小时前
React 之死·终章:一个 useRef,把闭包陷阱、依赖数组、漫天 rerender 全送走
前端·react.js·ai编程
不好听6134 小时前
HTML 事件监听机制:从 DOM Level 0 到 React 合成事件
前端·react.js·html
wordbaby4 小时前
为什么刷新页面就 404?聊聊 SPA 路由与 Nginx 的那点事
前端
不好听6134 小时前
React 核心概念:JSX、组件与数据驱动
前端·react.js
触底反弹4 小时前
🔥 React 零基础入门(中):500 行屎山代码到组件化的蜕变
前端·javascript·react.js
不好听6134 小时前
React vs Vue:两大前端框架技术选型深度对比
前端·vue.js·react.js
GuWenyue4 小时前
Cursor黑盒拆解!1套LangChain.js手写Mini编程Agent,自动生成React项目,效率提升60%
前端·数据库·人工智能
GuWenyue4 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
小林ixn5 小时前
从 onclick 到 React 合成事件,再到完整应用逻辑:一次前端架构的深度剖析
前端·react.js·前端框架
想会飞的蒲公英5 小时前
计算机怎样读取中文文本:编码、清洗与标准化
人工智能·python·自然语言处理