我现在正在做一个项目,我将字符串传递到这个 NLP API 中,它返回字符串情感分析的 JSON 对象。 我承认我是Python新手:
http://text-processing.com/docs/sentiment.html
通过命令行调用 API 的文档很简单。 当我打开终端并运行命令时,它工作正常。
curl -d "text=great" http://text-processing.com/api/sentiment/
在终端上运行该命令将产生:
{"probability": {"neg": 0.59309571705919506, "neutral": 0.5403849950008478, "pos": 0.40690428294080488}, "label": "neutral"}
我正在尝试在 Python 中找出一种方法来使用相同的命令进行终端调用,并捕获 JSON 对象、对其进行解码并在我的代码中使用它。
到目前为止,我发现使用以下代码在 Python 中有效:
import os
os.system('curl -d "text=great" http://text-processing.com/api/sentiment/')
但是,当我在 Python 文件中运行此行时,它会打印出 JSON 对象。 如何将输出保存到变量,然后转储字符串并在代码中使用 JSON 结果?
当我尝试时:
import os
sentiment = os.system('curl -d "text=great" http://text-processing.com/api/sentiment/')
它忽略我的变量赋值,并继续打印出 JSON 对象。
有什么建议吗?
有几种方法可以做到这一点。 与代码最相似的方法是使用subprocess
包调用操作系统。
import subprocess
process = subprocess.Popen(['curl', '-d', '"text=great"',
'http://text-processing.com/api/sentiment/'],
stdout=subprocess.PIPE)
stuff, err = process.communicate()
另一种方法是使用 python 包发出 post 请求。
import requests
response = requests.post(url='http://text-processing.com/api/sentiment/',
data="text=great").content
stuff = response.content