当前位置: 首页 > 面试题库 >

从Wikidata获取可读的结果

南门正祥
2023-03-14
问题内容
好的,所以我试图从Wikidata中获取有关电影的信息,以以下电影为例: https
//www.wikidata.org/wiki/Q24871

在页面上,数据清楚地以可读格式显示,但是当您尝试通过API提取数据时,会得到以下信息:https
:
//www.wikidata.org/w/api.php?action=wbgetentities&ids=Q24871

这是其中的一部分:

"P272": [
                {
                    "id": "q24871$4721C959-0FCF-49D4-9265-E4FAC217CB6E",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 775450
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal"
                },
                {
                    "id": "q24871$31777445-1068-4C38-9B4B-96362577C442",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 3041294
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal"
                },
                {
                    "id": "q24871$08009F7A-8E54-48C3-92D9-75DEF4CF3E8D",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 646968
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal"
                },
                {
                    "id": "q24871$CA53B5EB-1041-4701-A36E-7C348FAC984E",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 434841
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal",
                    "references": [
                        {
                            "hash": "50f57a3dbac4708ce4ae4a827c0afac7fcdb4a5c",
                            "snaks": {
                                "P143": [
                                    {
                                        "snaktype": "value",
                                        "property": "P143",
                                        "datatype": "wikibase-item",
                                        "datavalue": {
                                            "value": {
                                                "entity-type": "item",
                                                "numeric-id": 11920
                                            },
                                            "type": "wikibase-entityid"
                                        }
                                    }
                                ]
                            },
                            "snaks-order": [
                                "P143"
                            ]
                        }
                    ]
                }
            ],

问题是我不确定如何将类似的部分转换为可读的文本。我知道API使用唯一的ID调用了类及其属性之间的链接,但我仍然陷入困境。

目前这实际上可行吗,还是我叫错了树?


问题答案:

您应该numeric-id在每个语句中寻找s,并添加一个Q线索来恢复您的wikidata id,这应该导致['Q775450', 'Q3041294', 'Q646968', 'Q434841', 'Q11920']

[ 更新 :您现在可以直接从访问Q id mainsnak.datavalue.value.id,而不必从numeric-id] 进行构建

可以使用wikibase-sdk(我开发的JS
lib)wbk.simplify.claims功能来完成

取得这些ID后,您只需要使用wbgetentitiesAPI 请求实体标签:
https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q775450|Q3041294|Q646968|Q434841|Q11920&format=json&props=labels

您甚至可以使用languages参数来获得某些语言的结果:https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q775450|Q3041294|Q646968|Q434841|Q11920&format=json&props=labels&languages=en|de|fr



 类似资料:
  • 问题内容: 我已经制作了一个使用JSON Google图像搜索API来提供图像的android应用,但是我注意到Google不再支持它。我还发现Wikidata有时会在某些项目上提供图像属性,但是我似乎无法使用Wikidata API获得图像的URL位置。 有什么方法可以从Wikidata中的项目获取图像URL属性吗? 问题答案: 如果某些Wikidata项(ID为 Qxxx )具有图片(P18)

  • 问题内容: 我已经知道如何从Java剪贴板中获取纯文本,但是有时文本会以某种奇怪的方式进行编码,例如从Microsoft Word或从网站复制甚至从Eclipse复制源代码时。 如何从这些s中提取纯文本? 问题答案: 使用getData()方法和stringFlavor,您应该从剪贴板中获取纯文本。 如果剪贴板中有奇怪的文本,我认为,这应该是将数据放入剪贴板的程序问题。

  • 问题内容: 我如何得到一个数组的结果? 我有一个像这样的数组: 并将其保存在数据库中,例如JSON编码: 现在我想再次从数据库中获取数组。但是当我使用时: 我得到: 而不是数组。如何获取数组而不是对象? 问题答案: 将第二个参数设置为true以强制关联数组:

  • 问题内容: 当我在BigQuery Web UI中运行查询时,结果显示在一个表中,在该表中,每个字段的名称和类型均已知(即使字段是COUNT(),AVG(),…操作,类型领域当然是已知的)。然后可以将结果直接导出为table / json / csv。 我的问题是,当我在Java项目中检索查询结果时,例如使用查询: …可以在不显式定义的情况下在PCollection中获取TableRow的架构吗?

  • 我正在尝试从Java应用程序的Google Sheets API。我已经访问了教程中提到的文件,但我无法访问我自己创建的任何文件。 这是我使用的代码: 我在Drive中手动创建了一个电子表格,用字符串填充A1: B,并从URL中复制了id,看起来像“1IeoY5jY3Su86x1uvgc1yJqEU-6dd6FdUKo8Yf5J73k”(不是实际的ID)。 这将生成错误400无法解析范围:类数据!