【发布时间】:2020-05-07 07:57:34
【问题描述】:
我正在尝试使用 api 和 python 从 scopus 获取数据。我使用 python 模块请求进行查询。 查询的响应给我一个json,其值如下。
{ “搜索结果”: { "opensearch:totalResults": "1186741", "opensearch:startIndex": "0", "opensearch:itemsPerPage": "25", “开放搜索:查询”:{ "@role": "请求", "@searchTerms": "所有(机器学习)", “@startPage”:“0” }, “关联”: [ { "@_fa": "真", “@ref”:“自我”, "@href": "api 查询", “@type”:“应用程序/json” }, { "@_fa": "真", "@ref": "第一", "@href": "api 查询", “@type”:“应用程序/json” }, { "@_fa": "真", "@ref": "下一个", "@href": "api 查询", “@type”:“应用程序/json” }, { "@_fa": "真", "@ref": "最后", "@href": "api 查询", “@type”:“应用程序/json” } ], “入口”: [ { "@_fa": "真", “关联”: [ { "@_fa": "真", “@ref”:“自我”, "@href": "https://api.elsevier.com/content/abstract/scopus_id/85081889595" }, { "@_fa": "真", "@ref": "作者隶属关系", "@href": "https://api.elsevier.com/content/abstract/scopus_id/85081889595?field=author,affiliation" }, { "@_fa": "真", "@ref": "scopus", "@href": "https://www.scopus.com/inward/record.uri?partnerID=HzOxMe3b&scp=85081889595&origin=inward" }, { "@_fa": "真", "@ref": "scopus-citedby", "@href": "https://www.scopus.com/inward/citedby.uri?partnerID=HzOxMe3b&scp=85081889595&origin=inward" } ], "棱镜:url": "https://api.elsevier.com/content/abstract/scopus_id/85081889595", "dc:identifier": "SCOPUS_ID:85081889595", “开斋节”:“2-s2.0-85081889595”, "dc:title": "通过文本和音频挖掘识别对 PTSD 的简要折衷心理治疗中的热点", "dc:creator": "Wiegersma S.", "prism:publicationName": "欧洲精神创伤学杂志", “棱镜:issn”:“20008198”, “棱镜:eIssn”:“20008066”, “棱镜:体积”:“11”, “棱镜:问题标识符”:“1”, “棱镜:pageRange”:空, “棱镜:封面日期”:“2020-12-31”, "prism:coverDisplayDate": "2020 年 12 月 31 日", “棱镜:doi”:“10.1080/20008198.2020.1726672”, "citedby-count": "0", “隶属关系”:[ { "@_fa": "真", "affilname": "特温特大学", “附属城市”:“恩斯赫德”, “附属国”:“荷兰” } ], "prism:aggregationType": "期刊", “子类型”:“ar”, "subtypeDescription": "文章", “文章编号”:“1726672”, “源 ID”:“21100394256”, “开放访问”:“1”, “openaccessFlag”:真 },
但是,响应是嵌套的 json,我无法访问它的内部元素,例如键 dc:creator、citedby-count 等。
谁能帮助我了解如何访问它的所有部分,例如作者姓名、引用者、隶属关系等。 我想将此结果存储为 csv,我可以将其用于进一步操作。
直接申请
df = pandas.read_json(文件名)
没有产生正确的结果格式:我得到一个这样的表格。
entry [{'@_fa': 'true', 'link': [{'@_fa': 'true', '@...
link [{'@_fa': 'true', '@ref': 'self', '@href': 'ht...
opensearch:Query {'@role': 'request', '@searchTerms': 'all(mach...
opensearch:itemsPerPage 25
opensearch:startIndex 0
opensearch:totalResults 1186741
我也尝试过通过嵌套字典访问以列出字典的方法,但在某些时候,我卡住了。
with open('data.json', encoding='utf-8') as access:
read_file = json.load(access)
…
type(read_file)
这是一个字典,所以我按照字典的语法进一步访问,它在某个点转换为列表并再次转换为字典。
我的主要要求是 - **如何创建一个带有列标题的 csv 文件,这些标题将是条目标签内的标签,如 dc:identifier、dc:title、dc:creator、citedby-count 等,以及其中的值 ** 在此输入代码
【问题讨论】:
-
向我们展示一些示例数据,您迄今为止尝试过的内容以及您面临的具体问题。
-
我已经编辑了我的问题。如何重新发布?我是新来的,我希望这次它有足够的细节