我正在编写代码,以根据经验确定自然过程生成的数据中的state transition table。我想从数据中导出状态,然后将状态数据保存到HD,以便稍后查询。
根据我迄今为止所做的分析,状态信息是嵌套的,并且系统具有N(为简单而固定在N = 3)不同的状态。此外,这N个状态中的每一个都具有固定(可变数量)的嵌套状态。
这是我到目前为止提出的(伪YAML)模式:
machine-state:
frequency_1: state-info
frequency_2: state-info
frequency_3: state-info
state-info:
classification_1:
- classification_1_state_foo
- classification_1_state_foobar
- classification_1_state_foofoo
- classification_1_state_foofoobar
- classification_1_state_foobarfoo
classification_2:
- classification_2_state_name1
- classification_2_state_name2
- classification_2_state_name3
- classification_2_state_name4
classification_3:
- classification_3_state_anothername
- classification_3_state_anothername1
- classification_3_state_anothername2
- classification_3_state_anothername3
似乎状态机的各种分类(classification_ *)可以来自ABC。但是,我不确定如何用JSON表示这个树结构,以便进行简单的查询等。
我正在使用Python,并打算将JSON文档存储在PostgreSQL数据库中作为后端 - 所以我可以查询JSON文档,因此我可以根据存储的数据从经验上构建状态转换表。
我的问题是,考虑到我试图建模的问题(以及上面的示例YAML) - 我怎样才能最好地表示JSON模型中的数据?
答案 0 :(得分:0)
我没有看到比最直观的表现更好的东西:
{
"classification1": [
"classification_1_state_foo",
"classification_1_state_foobar",
"classification_1_state_foofoo",
...
],
"classification2": [
...
}
然而,正如我们所说的树结构,也许JSON不是这里的最佳选择。如果我建议对您的方法进行彻底改变,您可以考虑使用XML构建此数据,将XML数据保存在文件中并使用BeautifulSoup进行查询。例如:
<classification>
<classification_state>classification_1_state_foo</classification_state>
<classification_state>classification_1_state_foobar</classification_state>
<classification_state>classification_1_state_foofoo</classification_state>
...
</classification>
...