处理Microsoft Academic Knowledge API生成的格式错误的JSON

处理Microsoft Academic Knowledge API生成的格式错误的JSON,json,microsoft-cognitive,Json,Microsoft Cognitive,向Microsoft Academical发出以下请求会产生格式不正确的JSON: https://westus.api.cognitive.microsoft.com/academic/v1.0/interpret? query=albert einstein&complete=0&count=2&offset=2&model=latest 结果如下 Request-Context: appId=cid-v1:7cd06f0e-6d73-46a5-9c10-4

向Microsoft Academical发出以下请求会产生格式不正确的JSON:

https://westus.api.cognitive.microsoft.com/academic/v1.0/interpret?
query=albert einstein&complete=0&count=2&offset=2&model=latest
结果如下

Request-Context: appId=cid-v1:7cd06f0e-6d73-46a5-9c10-4ebe681d0156
apim-request-id: 8eec6818-55d3-4b7c-b1c3-b4c6236f0173
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
x-content-type-options: nosniff
Date: Tue, 31 Oct 2017 01:02:11 GMT
X-Powered-By: ASP.NET
Content-Length: 681
Content-Type: application/json

{
"query": "albert einstein",
"interpretations": [,
{
  "logprob": -69.749,
  "parse": "<rule name=\"#GetPapers\"><attr name=\"academic#W\">albert</attr> <attr name=\"academic#F.FN\">einstein</attr></rule>",
  "rules": [{
    "name": "#GetPapers",
    "output": {
      "type": "query",
      "value": "And(W='albert',Composite(F.FN=='einstein'))"
    }
  }]
},
{
  "logprob": -118.575,
  "parse": "<rule name=\"#GetPapers\"><attr name=\"academic#W\">albert</attr> <attr name=\"academic#W\">einstein</attr></rule>",
  "rules": [{
    "name": "#GetPapers",
    "output": {
      "type": "query",
      "value": "And(W='albert',W='einstein')"
    }
  }]
}
]
}
请求上下文:appId=cid-v1:7cd06f0e-6d73-46a5-9c10-4ebe681d0156
apim请求id:8eec6818-55d3-4b7c-b1c3-b4c6236f0173
严格的交通安全:最大年龄为31536000岁;包括子域;预载
x-content-type-options:nosniff
日期:2017年10月31日星期二01:02:11 GMT
X-Powered-By:ASP.NET
内容长度:681
内容类型:application/json
{
“查询”:“阿尔伯特·爱因斯坦”,
“解释”:[,
{
“logprob”:-69.749,
“解析”:“阿尔伯特·爱因斯坦”,
“规则”:[{
“姓名”:“获取文件”,
“产出”:{
“类型”:“查询”,
“值”:“和(W='albert',复合(F.FN='einstein')”
}
}]
},
{
“logprob”:-118.575,
“解析”:“阿尔伯特·爱因斯坦”,
“规则”:[{
“姓名”:“获取文件”,
“产出”:{
“类型”:“查询”,
“价值”:“和(W='阿尔伯特',W='爱因斯坦')”
}
}]
}
]
}

请注意JSON第三行的前导逗号,位于
解释
数组的开头。我怀疑用于分页结果的代码中有一个bug。我在使用Python,前面的逗号打断了我能想到的所有解析器,包括一个直接的
eval
。我想我可以在使用json.loads之前使用String.replace来处理它,但这是一个丑陋的解决方案。有更好的选择吗?我认为这是一个bug,对吗?

我也一样,看起来像个bug。我想在这里提出一个问题:谢谢你的指点。我没能找到那个资源。现在应该解决这个问题;如果您发现其他问题,请报告uservoice。我也得到了同样的结果,看起来像个bug。我想在这里提出一个问题:谢谢你的指点。我没能找到那个资源。现在应该解决这个问题;如果您发现其他问题,请报告uservoice。