0

我已经在 Bluemix 中部署了我的个性洞察服务应用程序,我可以调用 post 命令来发送文本。我想将数据的输出保存到 csv,我已经阅读了 Personality API 的 API 文档,但是我不明白我哪里出错了。任何人都可以帮助我将输出存储到 csv 文件。

这是我在 Python 中使用的代码。

#!/usr/bin/env python
# coding: utf-8

import requests
import json
import csv

response = requests.post("https://gateway.watsonplatform.net/personality-insights/api/v2/profile",
                         auth=("user-id", "password"),
                         headers={"content-type": "application/json", "Accept": "text/csv"},
                         data = "text to be analyzed"
                         )

jsonProfile = json.loads(response.text)

with open('test1234.csv', 'w') as f:
    for row in jsonProfile:
        f.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL)

请帮助我。

4

1 回答 1

2

您已经从请求中获取了带有Accept: text/csv请求标头的 CSV 数据。您只需将其直接输出到文件中,无需使用任何库(Personality Insights 已经为您格式化了!)。

这是一个有效的修改代码:

response = requests.post("https://gateway.watsonplatform.net/personality-insights"+
                         "/api/v2/profile?headers=True",
     auth = ("userid", "password"),
     headers = {"content-type": "text/plain", "Accept": "text/csv"},
     data = "replace your text here"
     )
with open('personality-insights.csv', 'w') as f:
    print >> f, response.text

另请注意?headers=True在 URL 中添加了 as 查询参数:这将输出列名——您可能会发现这很有用(如果您要连接多个 API 调用的输出,则省略此参数并只获取您的值原始示例)。

于 2015-06-07T21:35:04.487 回答