pyomo - 通过 DataPortal 将 JSON 数据加载到参数中
问题描述
我想将 JSON 文件中的数据加载到我的 Pyomo 模型中。我从
m = AbstractModel()
m.T = RangeSet(1,48,1)
m.TS = Param(m.T)
dp = DataPortal()
稍后我想加载我的 json 文件来填充我的参数 TS
dp.load(param = m.TS, filename = data.json)
数据是由整数 1,2,...,48 索引的时间序列因此它看起来像这样:
{
"1" : 0.0001,
"2" : 0.1 ,
....,
"48" : 0
}
然后我创建
create_instance(dp)
我收到以下错误:
RuntimeError: Failed to set value for param=TS, index=1, value=35.676187.
source error message="Index '1' is not valid for indexed component 'TS'"
解决方案
所以我想出了一个解决这个问题的方法。JSON 文件应该以这种方式编写:
{"TS":
[
{'index':1, 'value':1},
{'index':2, 'value':0},
{'index':3, 'value':1},
]
}
推荐阅读
- sql - 在 Presto 中基于固定移动日期窗口聚合数据
- linux - Visual Studio 代码在 xubuntu 20.04 上随机挂起和崩溃
- build - 减少 Chromium 重新编译时间
- windows - 如何在 Windows PowerShell 中正确使用 Remove-Item -Confirm:$false -Force
- tensorflow - 不生成数据增强
- ios - 无法在 Xcode 中添加推送通知功能
- asp.net-mvc - 我无法创建已发布的网站。我想在已发布的网站上创建 iis 实例
- bash - 如何使用 awk 为新创建的 bash 用户设置密码
- textures - 尝试在 2D 纹理上创建无序访问视图
- android - 在哪里可以找到按 API 级别列出的 Android 权限的完整列表?