Возврат данных CSV в результате для IBM Cloud Function
У меня есть функция, написанная на Python для облака IBM. Которые возвращают результаты как json для следующих словарей python:
return {"billing_for_org": output1, "billing_for_org2:": output2}
Есть ли способ вернуть эти данные в виде файла CSV? Итак, когда я вызываю API, я могу загрузить данные в виде файла CSV?
1 ответ
Вот пример, который я протестировал. Дайте мне знать, если это то, что вы ищете.
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 или Web Action.
Я протестировал приведенный выше код как функцию веб-действия и получил результат. Обратите внимание, что расширение говорит 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 → text / csv; charset = UTF-8 Content-Length → 45 Connection → keep-alive Content-Disposition → вложение;filename=myfilename.csv
Ссылка - https://console.bluemix.net/docs/openwhisk/openwhisk_webactions.html. https://developer.ibm.com/answers/answers/406943/view.html