首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么更新wikibase时“无效的snak数据”?

为什么更新wikibase时“无效的snak数据”?
EN

Stack Overflow用户
提问于 2021-02-23 07:06:55
回答 1查看 124关注 0票数 2

我正在学习如何使用API更新Wikidata上的值。登录和cookies工作正常,但是当我试图更新一个值时,我会得到一个invalid-snak错误。

请求体如下所示:

代码语言:javascript
复制
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

答复是:

代码语言:javascript
复制
{
  "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有关。

所以问题是,更新snakvalue的正确方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-23 09:17:34

问题是,您是在声明value={"entity-type":"Q1917"},但Q1917不是entity-type

相反,您应该声明value={"entity-type":"item","numeric-id":1917}

有关深化该主题的内容,请参阅Wikidata API的文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66328569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档