【问题标题】:post csv file directly from pandas data frame (pandas_to.csv)直接从 pandas 数据框(pandas to.csv)发布 csv 文件
【发布时间】:2018-11-16 00:49:45
【问题描述】:

我正在寻找一种从 pandas 数据框中直接发布 csv 文件的方法,而无需将其保存在本地文件中,然后再发布。

在我的例子中,URL 是一个监听我的请求的服务,需要一个 scv

有没有办法将 url 作为参数放入 df.to_csv(url) 中以直接发布?

我尝试了以下方法:(得到了不好的反应)

import requests
agg_data=pd.read_csv('some_csv.csv')
r = requests.post('http://crystal-ball-some_url', data ={'agg_data':agg_data.to_csv()})
print (r)
<Response [400]>

【问题讨论】:

  • 贴在哪里? HTTP 帖子? CSV 已经是一个字符串,所以只需发送它? .post(df.to_csv(index=False))
  • @AntonvBR 感谢您的帮助,请参阅我的编辑
  • 您是否尝试添加目标 URL 字符串 pd.to_csv(URL) 而不是文件名,就像将其保存到本地文件时一样

标签: python pandas curl request


【解决方案1】:

@Anton vBR 谢谢!

事实证明这是可行的:

slider_output = agg_data.to_csv()
        files = {'file': ('agg_data.csv', slider_output)}
        requests.post('some_url', files=files)

【讨论】:

    【解决方案2】:

    感谢@AntonvBR。下面的代码适用于 python 3.7.3

    import requests
    files = {('files', ('aug_template.csv', aug_annotation_df.to_csv()))}
    response = requests.post(url=UPLOAD_URL, params=params, files=files, data=body)
    

    【讨论】:

    • 欢迎来到 SO!当回答一个已经有公认答案的旧问题(这个问题超过 2 年)时(这里就是这种情况),请确保您的答案添加了一些实质性的新问题。如果没有,请不要回答。
    猜你喜欢
    • 2019-09-23
    • 1970-01-01
    • 2018-10-14
    • 2013-01-08
    • 2017-12-24
    • 2017-06-03
    • 2018-05-06
    • 2019-03-24
    • 2019-01-31
    相关资源
    最近更新 更多