2013-07-09 1 views
1

J'essaye d'utiliser Python pour demander des données de l'API Sentiment140. L'API utilise un service de classification en bloc (JSON). Dans le terminal, il fonctionne bienTransformer curl en Python en utilisant Urllib avec Sentiment140 API

curl -d "{'data': [{'text': 'I love Titanic.'}, {'text': 'I hate Titanic.'}]}" http://www.sentiment140.com/api/bulkClassifyJson 

conduisant à la réponse suivante:

{"data":[{"text":"I love Titanic.","polarity":4,"meta":{"language":"en"}},{"text":"I hate Titanic.","polarity":0,"meta":{"language":"en"}}]} 

Je pensais que je pouvais utiliser urllib pour obtenir la même réponse de mon code python. J'ai essayé:

import urllib 
import urllib2 

url = 'http://www.sentiment140.com/api/bulkClassifyJson' 
values = {'data': [{'text': 'I love Titanic.'}, {'text': 'I hate Titanic.'}]} 

data = urllib.urlencode(values) 
response = urllib2.urlopen(url, data) 
page = response.read() 

Le code fonctionne mais il ne me donne aucun résultat. Ai-je raté quelque chose?

Répondre

4

Je pense que vous devez utiliser json ici.

Essayez de faire:

data = json.dumps(values) # instead of urllib.urlencode(values) 
response = urllib2.urlopen(url, data) 
page = response.read() 

et sur le dessus

import json 
+0

parfait! Je vous remercie! – Tom