我有一個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將每一行加載到數據結構中?任何建議或想法都將非常有幫助 –
查看下面添加的回答 –