【问题标题】:Can any one help me in storing the json output of personality insights API to csv using Python?任何人都可以帮助我使用 Python 将个性洞察 API 的 json 输出存储到 csv 吗?
【发布时间】:2015-08-22 03:17:42
【问题描述】:

我已经在 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)

请帮帮我。

【问题讨论】:

  • 首先你的缩进全错了,然后,你想要什么,你得到了什么,告诉我们。
  • 有几处不对:(1)你发送的是纯文本,但同时也指明了content-type=application/json; (2) 您正在获取 CSV 输出,但尝试将其解析为 JSON; (3) 然后您尝试使用 csv 库输出它,但 JSON 结构(如果您调用 JSON API)是一个嵌套对象 - 因为 for 迭代器不能简单地在那里工作。所有这些都在我下面的回复中得到纠正。

标签: python json csv ibm-watson personality-insights


【解决方案1】:

您已经从请求中获取了带有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

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

【讨论】:

  • 嗨 Herchu.. 您在 GitHub 上有一个用于用户建模服务的 Python 存储库。您有任何与 Watson 服务相关的存储库吗?
  • 嗨 Krishna,您可以在这里找到所有与 Watson 服务相关的存储库:github.com/watson-developer-cloud
猜你喜欢
  • 1970-01-01
  • 2010-11-07
  • 2013-02-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-07
  • 1970-01-01
相关资源
最近更新 更多