pythonwatson-nlu

How to resolve content is empty error in NLU Watson API?


I am streaming tweets in a file tweet.txt and using another python script, I am reading the tweets and sending them to Watson. Sometimes, there generates an error:

Traceback (most recent call last): File "readingTweets.py", line 44, in language='en' File "/usr/local/lib/python2.7/dist-packages/watson_developer_cloud/natural_language_understanding_v1.py", line 173, in analyze method='POST', url=url, params=params, json=data, accept_json=True) File "/usr/local/lib/python2.7/dist-packages/watson_developer_cloud/watson_service.py", line 385, in request info=error_info, httpResponse=response) watson_developer_cloud.watson_service.WatsonApiException: Error: invalid request: content is empty, Code: 400 , X-dp-watson-tran-id: gateway02-582988317 , X-global-transaction-id: ffea405d5adda40d22bfb21d

My code sample is:

while 1:
    where = file.tell()
    line = file.readline()
    if not line:
        time.sleep(1)
        file.seek(where)
    else:
        if (line):
            print "-----------------------------"
            print "the line is: "
            print line
            print "-----------------------------"
            response = natural_language_understanding.analyze(
                text=line,
                features=Features(
                    entities=EntitiesOptions(
                        emotion=True,
                        sentiment=True,
                        limit=2),
                    keywords=KeywordsOptions(
                        emotion=True,
                        sentiment=True,
                        limit=2)),
                language='en'
                )
            print(json.dumps(response, indent=2))

Solution

  • It is what it is Error: invalid request: content is empty no content or invalid characters. You suggested that there were chars like \n used and you checked only for the empty ones.