Возврат данных CSV в результате для IBM Cloud Function - PullRequest
0 голосов
/ 24 декабря 2018

У меня есть функция, написанная на Python для облака IBM.Что возвращает результаты в виде json для следующих словарей python:

return {"billing_for_org": output1, "billing_for_org2:": output2}

Есть ли способ вернуть эти данные в виде файла CSV?Поэтому, когда я вызываю API, я могу загрузить данные в виде файла CSV?

1 Ответ

0 голосов
/ 25 декабря 2018

Вот пример, который я тестировал.Дайте мне знать, если это то, что вы ищете.

import sys
import csv
import io

def main(dict):
  output = io.StringIO()
  my_dict = {"billing_for_org": "$100", "billing_for_org2": "$200"}
  w = csv.DictWriter(output, my_dict.keys())
  w.writeheader()
  w.writerow(my_dict)
  return {"body": output.getvalue(), 
  "headers": {'Content-Type': 'text/csv','Content-Disposition':'attachment;filename=myfilename.csv'}}

Я не уверен, как вы вызываете функцию как Rest API или веб-действие.

Я тестировал приведенный выше код как веб-действиефункционировать и получил результат.Обратите внимание, что расширение говорит http в конце URL-адреса, что заставляет функцию возвращать полезные нагрузки не по умолчанию (Json).

Пример URL-адреса - https://openwhisk.ng.bluemix.net/api/v1/web/demo_dev/hello-world/helloworld.http

Ответ получен -

Тело:

billing_for_org, billing_for_org2

$ 100, $ 200

Заголовки:

Content-Type→ текст / CSV;charset = UTF-8 Content-Length → 45 Connection → keep-alive Расположение содержимого → вложение; имя файла = myfilename.csv

Ссылка - https://console.bluemix.net/docs/openwhisk/openwhisk_webactions.html#openwhisk_webactions. https://developer.ibm.com/answers/answers/406943/view.html

...