我有一个20gb的数据库文件(* .db),其中包含大量关于从Scopus获取的科学文章的信息。大部分信息都存储在数据库文件的响应表中。我只想从每篇发表的文章中获得主题领域。我不知道如何从数据库文件中获取此信息。使用Python从SQL表获取信息
在数据库文件的每一行中,很多信息存储在作者,文章和主题区域中。一个片段是这样的:
{"abstracts-retrieval-response":{"coredata":{"prism:url":"http://api.elsevier.com/content/abstract/scopus_id/85012897283","dc:identifier":"SCOPUS_ID:85012897283","eid":"2-s2.0-85012897283","language":{"@xml:lang": "eng"},"authkeywords":{"author-keyword": [{"@_fa": "true", "$" :"austerity policies"},{"@_fa": "true", "$" :"housing policy"},{"@_fa": "true", "$" :"Italy"},{"@_fa": "true", "$" :"Mediterranean welfare regime"},{"@_fa": "true", "$" :"Neoliberalism"},{"@_fa": "true", "$" :"Spain"}]},"idxterms":null,"subject-areas":{"subject-area": [{"@_fa": "true", "@abbrev": "SOCI", "@code": "3303", "$" :"Development"},{"@_fa": "true", "@abbrev": "SOCI", "@code": "3322", "$" :"Urban Studies"},{"@_fa": "true", "@abbrev": "ENVI", "@code": "2308", "$" :"Management, Monitoring, Policy and Law"}]}}
从这个大的(但在现实中甚至更大)表,我只得到dc-identifier
和(多个)主题领域感兴趣。理想情况下,我会让他们在* .csv文件中。
是否有一种直接的方法可以使用Python从* .db文件获取这些信息?使用sqlite3的我似乎能够得到使用下面的代码存取权限的数据库:
import sqlite3
conn = sqlite3.connect('C:/responses.db')
c = conn.cursor()
对我来说,目前尚不清楚我现在只能从数据库中获取的DC-标识符和学科领域的信息文件。
数据看起来像是JSON,所以在从数据库中读取数据(例如'c.execute(“select * from responses;”')之后,遍历结果并使用Python的'json'库加载每个然后将其存储到Python数据结构中,从中可以提取所需的信息,然后将其存储为您希望用于分析或导出的任何其他格式 –
非常感谢!我仍然是Python(和json)的初学者, ,所以现在我被困在如何遍历整个文件中,如何使用json将每一行加载到数据结构中?任何建议或想法都将非常有帮助 –
查看下面添加的回答 –