wikidata - 为什么在更新 wikibase 时出现“无效的 snak 数据”?
问题描述
我正在尝试学习如何使用 API 更新 Wikidata 上的值。登录和 csrf cookie 工作正常,但是当我尝试更新值时出现invalid-snak
错误。
请求正文如下所示:
POST /w/api.php HTTP/1.1
Accept-Encoding: gzip
Content-Length: 178
User-Agent: Mojolicious (Perl)
Host: test.wikidata.org
Content-Type: application/x-www-form-urlencoded
Cookie: [omitted]
action=wbcreateclaim&bot=1&entity=Q3345&format=json&property=P9876&snaktype=value&token=[omitted]&value=%7B%22entity-type%22%3A%22Q1917%22%7D
回应是:
{
"error": {
"code": "invalid-snak",
"info": "Invalid snak data.",
"messages": [
{
"name": "wikibase-api-invalid-snak",
"parameters": [],
"html": {
"*": "Invalid snak data."
}
}
],
"*": "See https://test.wikidata.org/w/api.php for API usage. Subscribe to the mediawiki-api-announce mailing list at <https://lists.wikimedia.org/mailman/listinfo/mediawiki-api-announce> for notice of API deprecations and breaking changes."
},
"servedby": "mw1386"
}
我尝试了各种方法来通过更改值来成功更新 - 没有结果。我成功的唯一更新是 with snaktype=novalue
- 这将确认问题仅出在 snak vaue 上。
所以问题是,更新蛇值的正确方法是什么?
解决方案
问题是你在陈述value={"entity-type":"Q1917"}
,但Q1917
不是entity-type
!
您应该改为声明value={"entity-type":"item","numeric-id":1917}
.
如需深化主题,请参阅Wikidata API 的文档。
推荐阅读
- jquery - 用 jquery 填充 html 表数据失败 Uncaught ReferenceError
- javascript - 如何使用引导程序 4 警报?
- elasticsearch - 如何将 ElasticSearch 命令翻译成 NEST 并使其具有幂等性
- stata - 面板数据中的返回计算不正确
- http - Jira 资源因 net::ERR_CONNECTION_ABORTED 而失败
- html - HTML 表格:Slicky 标题和最后一列自动宽度
- sql - SQL Server - 存储过程 - 二进制搜索算法
- java - 哪些应用服务器支持 WAR 中的多版本 JAR(如果有)?
- javascript - 防止“showOpenDialog”添加最近的文档条目
- azure - Azure B2C 禁用 SignUpAndSignIn 策略的注册