Microsoft Azure文本分析认知服务编码问题

时间:2018-08-08 20:12:32

标签: python json azure text-analysis text-analytics-api

为了使用其文本分析,Azure需要一个如下所示的json文件/文档:

document = {
  "documents" :[
    {"id": "1", "language": "en", "text": "I had a wonderful experience! The rooms were wonderful and the staff was helpful."},
    {"id": "2", "language": "en", "text": "I had a terrible time at the hotel. The staff was rude and the food was awful."},
    {'id': '3', 'language': 'es', 'text': 'Los caminos que llevan hasta Monte Rainier son espectaculares y hermosos.'},  
    {'id': '4', 'language': 'es', 'text': 'La carretera estaba atascada. Había mucho tráfico el día de ayer.'}]}

此刻我遇到的问题是最后一条记录id: 4导致了此错误:

b'{"code":"BadRequest","message":"Invalid request","innerError":{"code":"InvalidRequestBodyFormat","message":"Request body format is wrong. 
Make sure the json request is serialized correctly and there are no null members."}}'

JSON的格式是正确的,直接来自他们的站点,并且在没有最后记录的情况下运行得很好。我进行了更多测试,然后发现íá是引发错误的代码。为了确保这一点,我什至用resumé或fiancé等英语单词进行了测试,但仍然存在相同的错误。但这没有意义,因为西班牙语是文本分析支持的语言之一,并且甚至在处理文本语言之前就将其定义为西班牙语。

所以我的问题是,在将数据通过Azure传递之前,我是否缺少某些东西?我是否应该转换,更改编码或删除这些字符,还是Azure的API应该能够处理的这些事情?

编辑:多一点背景知识,我按照他们网站上提供的说明进行了设置,使其可以与python一起使用。除了我提到的内容,它的工作原理非常完美。

1 个答案:

答案 0 :(得分:0)

感谢@ADyson弄清楚了。

您必须确保输入被编码为UTF-8UTF-16才能正确运行。