【问题标题】:Convert nested dictionary/xml to flat file for sqlite将嵌套字典/xml 转换为 sqlite 的平面文件
【发布时间】:2011-07-05 07:05:11
【问题描述】:

我在网上搜索过,似乎找不到合适的例子,所以我想我会问... (顺便说一句,这对我来说大部分都是新的——不是全部,只是大部分。)

问题:试图将 pubmed 引文数据的 bio/python 嵌套字典(或 xml)转换为平面(标准化)结构,例如 sqlite。引文数据是使用 biopython 从 pubmed 获取的,并被解析为字典,但如果需要,也可以作为 xml 检索。

并非所有引文都具有所有字段/键,并且并非所有字段/键都具有相同数量的项目(作者、网格术语、参考文献等),并且理解这是规范化过程的一部分。

这是关于我的实际理解结束的地方。

也就是说,我认为该过程应该是这样的:首先删除/规范化所有唯一字段(每篇论文有 1 个字段,例如标题、摘要、日期、引文等...,但不要说从属关系为这将与第一作者相关联)。没有摘要的论文可以填空吗?

然后转到作者并再次使用 PMID 作为 fk 创建一个单独的表,然后对单独的表中的各种其他字段/键/项目执行相同的操作,例如网格标题、EC 编号、参考等。 ..

有没有办法从主字典中删除(弹出?)键/项目,以便我可以直观地看到已完成/需要完成的操作(显然离开 PMID)?

再次,如果我要向初学者提出一个明显的问题,请提前道歉-我确实理解您不能将嵌套结构放入平坦的空间中-只是在寻找解决此问题的最愚蠢的方法希望它能让我确保所有内容都被正确捕获。

非常感谢, 克里斯

【问题讨论】:

    标签: sqlite nested normalization dictionary biopython


    【解决方案1】:

    一个简单的问题——如果您已经拥有 XML 格式的数据,为什么要将其规范化为 SQL 格式?为什么不直接使用原始 XML? Berkeley DB XML 是一个链接到您的应用程序的库(如 SQLite)。无需安装或维护单独的服务器。该库允许您使用XPath or XQuery 存储和查询 XML 数据。它非常快,占用空间小。是事务性的、可恢复的和高度可靠的。如果需要,它还具有 HA 功能。

    将数据保存在 XML 中应该可以简化整个数据导入过程,并且仍然允许您查询半结构化数据。

    【讨论】:

      猜你喜欢
      • 2016-06-16
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 2023-02-23
      • 2022-12-05
      • 1970-01-01
      • 2020-09-03
      • 2013-12-07
      相关资源
      最近更新 更多