簡體   English   中英

Azure認知文本分析工具返回400錯誤請求Python

[英]Azure Cognitive text analytics Tool returns 400 Bad request Python

我正在嘗試使用Azure文本分析工具提取主題,但出現400錯誤的請求錯誤:我的代碼如下:

account_key = '546e6162da424e6f991d03b7f6acxxx'
headers = {
 'Ocp-Apim-Subscription-Key': account_key,
 'Content-Type': 'application/json',
 'Accept': 'application/json'}

import requests

tufani={
     "documents": [
         {
             "language": "en",
             "id": "1",
             "text": "First document"
         },
         {
             "language": "en",
             "id": "100",
             "text": "Final document"
         }
     ]
 }

print('Starting topic detection.')
uri = base_url + 'text/analytics/v2.0/topics'
r=requests.post('https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/topics',data=str(tufani),headers =headers)

print(r.status_code, r.reason)

(400,“錯誤請求”)

我在這方面做錯了什么?

謝謝!

我嘗試重現您的問題,並且發現使用代碼print(r.text)導致的400 Bad Request錯誤是由以下原因引起的。

u'{“ code”:“ BadRequest”,“ message”:“無效的請求”,“ innerError”:{“ code”:“ InvalidRequestContent”, “ message”:“對此API的請求應至少包含100個文檔,其中每個文檔都不為null或為空“,” minimumNumberOfDocuments“:100 }}'

它還在官方教程“ 任務3-檢測文本語料庫中的主題”中顯示 ,如下所示。

該API 至少需要提交100條文本記錄 ,但旨在檢測數百到數千條記錄中的主題。 任何非英語記錄或少於3個單詞的記錄都將被丟棄,因此不會分配給主題。 對於主題檢測,可以提交的單個文檔的最大大小為30KB,提交的輸入的總最大大小為30MB。 主題檢測的速率限制為每5分鍾5次提交。

因此,請添加足夠的文本記錄以使用API​​。

您不應該使用str(tufani)為POST請求編碼數據,而是requests自動為您編碼dict數據

r=requests.post('https://westus.api.cognitive.microsoft.com/text/analytics/v2.0/topics',data=tufani,headers =headers)

PS如果服務器接受JSON編碼的POST / PATCH數據,則可以使用json.dumps(payload)來完成工作。

Shane和Peter提出的解決方案都是我所缺少的錯誤,這些建議解決了該問題。

謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM