如何解决为什么更新 wikibase 时出现“无效的 snak 数据”?
我正在尝试学习如何使用 API 更新维基数据上的值。登录和 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"
}
我尝试了各种方法来通过更改值来成功进行更新 - 没有结果。我唯一成功的更新是 snaktype=novalue
- 这将确认问题仅在于 snak vaue。
那么问题是,更新 snakvalue 的正确方法是什么?
解决方法
问题是您声明的是 value={"entity-type":"Q1917"}
,但 Q1917
不是 entity-type
!
您应该改为声明 value={"entity-type":"item","numeric-id":1917}
。
要深化主题,请参阅Wikidata API's documentation。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。