2016-08-24 4 views
1

Python 2.7でxmlで結果が正常に返され、ElementTreeによって解析されるこの継承コードがあります。私は、Python 3.5へのプログラムを更新していると私は、結果のXML解析変更する必要がないようにこれを行うにしようとしていますalchemy_language.entitiesでoutputModeがまだサポートされています

result = alchemyObj.TextGetRankedNamedEntities(text) 

root = ET.fromstring(result) 

result = alchemy_language.entities(outputMode='xml', text='text', max_ 
items='10'), 

root = ET.fromstring(result) 

http://www.ibm.com/watson/developercloud/alchemy-language/api/v1/#entities OUTPUTMODEパーは、JSONのデフォルトの選択を可能にとxml。しかし、私はこのエラーが表示されます:

Traceback (most recent call last): 
    File "bin/nerv35.py", line 93, in <module> 
    main() 
    File "bin/nerv35.py", line 55, in main 
    result = alchemy_language.entities(outputMode='xml', text='text', max_items='10'), 
TypeError: entities() got an unexpected keyword argument 'outputMode' 

outputModeは実際にはまだ存在しますか?その場合、エンティティパラメータには何が問題なのですか?

+0

あなたはwatson_developer_cloudを使用していますか? –

答えて

1

watson-developer-cloudには、エンティティに対してこのオプションがないようです。許可される設定は次のとおりです。

html 
text 
url 
disambiguate 
linked_data 
coreference 
quotations 
sentiment 
show_source_text 
max_items 
language 
model 

あなたはrequestsを使用して直接APIにアクセスしてみてくださいすることができます。たとえば:

import requests 

alchemyApiKey = 'YOUR_API_KEY' 
url = 'https://gateway-a.watsonplatform.net/calls/text/TextGetRankedNamedEntities' 

payload = { 'apikey': alchemyApiKey, 
      'outputMode': 'xml', 
      'text': 'This is an example text. IBM Corp' 
      } 

r = requests.post(url,payload) 

print r.text 

はこれを返す必要があります。

<?xml version="1.0" encoding="UTF-8"?> 
<results> 
    <status>OK</status> 
    <usage>By accessing AlchemyAPI or using information generated by AlchemyAPI, you are agreeing to be bound by the AlchemyAPI Terms of Use: http://www.alchemyapi.com/company/terms.html</usage> 
    <url></url> 
    <language>english</language> 
    <entities> 
     <entity> 
      <type>Company</type> 
      <relevance>0.961433</relevance> 
      <count>1</count> 
      <text>IBM Corp</text> 
     </entity> 
    </entities> 
</results> 
関連する問題