将嵌套字典/ xml转换为sqlite的平面文件

时间:2011-02-27 16:25:05

标签: sqlite nested normalization dictionary biopython

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

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

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

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

那就是说,我认为这个过程应该是这样的:首先删除/规范化所有独特的字段(那些每篇论文有1个,例如标题,摘要,日期,引用等等......但是说没有隶属关系这将与第一作者联系起来)。没有抽象的论文可以填充为null吗?

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

有没有办法做到这一点,从主词典中删除(弹出?)键/项目,以便我可以直观地看到已完成/需要完成的事情(显然离开了PMID)?

再次提前道歉,如果我向发起者提出一个非常明显的问题 - 而且我确实理解你不能将嵌套结构放入平坦的空间 - 只是寻找最少的愚蠢的方式来解决这个问题并且希望能让我确保一切都被正确捕获。

非常感谢, 克里斯

1 个答案:

答案 0 :(得分:0)

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

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