用于中小型分层数据结构的GUI工具和API

时间:2010-06-22 20:58:03

标签: python user-interface data-structures hierarchical-data

我正在尝试找到一个工具和库来编辑,编写和读取分层结构中的数据,类似于LDAP树,Windows注册表或Berkeley DB结构。 键应该表示某种层次结构,并且值应该具有相对灵活的格式(键入是可选的,但可能有用)。这是一个例子:

Items/item_1/shape = "rectangle"
Items/item_1/top = 10
Items/item_1/left = 10
Items/item_1/width = 30
Items/item_1/height = 40

Items/item_2/shape = "square"
Items/item_2/top = 10
Items/item_2/left = 10
Items/item_2/width = 30

Items/item_3/shape = "circle"
Items/item_3/centre_x = 40
Items/item_3/centre_y = 50
Items/item_3/radius = 20
Items/item_3/colour = blue

用例将是:

  1. 通过方便的GUI编辑数据存储。 这可能看起来像Windows Regedit或Apache Directory Studio (LDAP Browser)

  2. 将该数据保存到某个商店(例如文件)。

  3. 从另一个可以查询的应用程序加载此商店 它来自API。理想情况下,这个库可以从Python调用。

  4. 我希望这些操作的读取速度相当快,但不要事先将它们全部加载到内存中。数据存储将或多或少地手动更新到应用程序中,比读取数据的频率低得多。 能够从API写入该数据将是一个加分,但这不是一个严格的要求。

    查询会很好。例如(在伪查询中),“List Items / * where top == 10”将返回:

    • 产品/ ITEM_1
    • 产品/ ITEM_2

    易于编辑(通过良好的GUI)是最重要的功能之一。

    我考虑了几个选项:

    1. LDAP服务器可满足大多数要求(特别是在Apache Directory Studio的帮助下)。但是,仅为此部署LDAP服务器太重了。无论Apache Directory是多么好,用户仍然需要对LDAP有一个合理的理解(不仅仅是解释树的层次结构)。我还想在创建模式时有一些灵活性(或根本没有模式) 而不是必须依靠管理员来做这件事。

    2. Windows Regedit 。我不确定它是否可能,但我想可以想象一个类似注册表的文件与实际的Windows注册表无关,可以通过Regedit使用自定义内容进行编辑。但是我希望这个GUI应用程序可以在非Windows平台上使用,我甚至不确定是否有Python API来读取Windows注册表文件。

    3. RDF 。那可能有用。我确信语义网有相当好的Python库。但是,我不需要任何推理能力。我宁愿有快速的东西,也不会占用太多内存。我不确定是否有任何好的GUI工具可以查看和编辑树(因为它适用于网页和图形)。

    4. 有一些方法可以在像SQLite这样的现有系统之上构建这种数据结构(例如),这样就可以了,但我不确定它是否会有一个好的GUI。

      我很感激您的意见和建议,谢谢。

1 个答案:

答案 0 :(得分:0)

请原谅我的愚蠢,但如果你的层次结构不是最粗略的例子,那么你选择JSON甚至(gulp!)XML必须有非常引人注目的,压倒性的理由:

<items>
  <item>
   <number>1</number>
   <shape>rectangle</shape>
   <top>10</top>
   <left>10</left>
   <width>30</width>
   <height>40</height>
  </item>
  <item>
   <number>2</number>
   <shape>triangle</shape>
   <top>20</top>
   <left>50</left>
   <width>30></width>
   <height>40</height>
  </item>
</items>

对于XML,您知道有大量编辑器可以满足您的需求。与JSON相同。而且我认为还有XML-&gt; MySQL - &gt; XML库。

为什么不采取这种方式?