首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >派一只熊猫去松绑

派一只熊猫去松绑
EN

Stack Overflow用户
提问于 2020-09-07 16:46:42
回答 3查看 2.4K关注 0票数 5

我正在尝试使用下面的小脚本在一个频道上发送熊猫数据:

代码语言:javascript
复制
import requests
URL = 'XXXXXX'

response = requests.post(
        URL, data={dataframe}
    )

但是当我这样做时,我会收到以下错误消息:'DataFrame' objects are mutable, thus they cannot be hashed!我还试着把它作为json发送,但是对于用户来说,它是不可读的。知道怎么做好吗?谢谢!

我的数据显示如下:

代码语言:javascript
复制
    Bot instance    Current Potential profit    Potential Profit 24h ago    Change last 24h Volume 24h  Volume Market
    0   Biki - TECUSDT  21.69386074 USDT    21.60458081 USDT    0.08927993 USDT 0.84554375 USDT 28577.2565559176490500
    1   Binance - XEMBTC    -3.55974813 BTC -3.55514961 BTC -0.00459852 BTC 11.31867593 BTC 924.7716585800000000
    2   Binance - XEM/ETH   -15.38320177 ETH    -15.32533185 ETH    -0.05786992 ETH 35.44241506 ETH 1273.2456803600000000
    3   bitfinex ant/btc    1.64774952 BTC  1.65615563 BTC  -0.00840611 BTC 0.01056552 BTC  5.2507294117379079
    4   Bitfinex ANT/ETH    -15.93635190 ETH    -15.60342681 ETH    -0.33292509 ETH 0.00000000 ETH  99.3832923859608600

当我把它当作json来松弛时,它看起来是这样的:

{"Bot实例“:{”0“:”Biki- TECUSDT“、"1":"Binance - XEMBTC”、"2":"Binance - XEM/ETH“、"3":"bitfinex ant/btc”、"4":"Bitfinex ANT/ETH“、"5":"Bitfinex ANT/USD”、"6":"Bitfinex /BTC“、"7":"Bitfinex ODE/美元”、"8":"Bitfinex -RIFBTC“、"9":"Bitfinex RIFBTC","10":"Bitfinex -VLD/美元“,"11":"Bittrex ANT/BTC","12":"Bittrex ANT/ETH","13":"Bittrex - GBYTEBTC","14":"Bitvavo - ANT/EUR","15":"Coinall - RIFBTC","16":"Coindeal PHT/ETH","17":"Coinmetro - PRQEUR","18":"Hitbtc ANTBTC","19":"Hitbtc - PLBTBTC",”20“:”BTC ETH“,"21":"Hitbtc - PLR/BTC","22":"Hitbtc - PLR/ETH","23":"Hitbtc - PLR/USDT","24":"Kucoin - RIFBTC","25":"LGO - LGOUSD",“26”:“液态-RIF美元”,"27":"Livecoin - PLBTBTC","28":"Livecoin -PLBTBTC“,"29":"Livecoin - PLBTUSD","30":"Nash - ANTBTC","31":"Poloniex - PRQUSDT","32":"P2PB2B - ANTBTC"},“当前潜在利润”:{“0”:“21.69386074 USDT","1":"-3.55974813 BTC","2":"-15.38320177 ETH","3":"1.64774952 BTC","4":"-15.93635190 ETH","5":"-22533.4891602美元”,"6":null,"7":"-163.0524“

对于用户来说是不可读的

EN

回答 3

Stack Overflow用户

发布于 2020-09-10 18:42:53

您可以使用pandas.DataFrame.to_markdown将数据编码为字符串。这应该在Slack中是可读的。

代码语言:javascript
复制
response = requests.post(
    URL,
    data={'<payload_key>': dataframe.to_markdown()}
)

to_markdown给出的字符串如下:

代码语言:javascript
复制
|    | index             | Bot instance     | Current Potential profit   | Potential Profit 24h ago   | Change last 24h Volume   |   24h  Volume Market |
|---:|:------------------|:-----------------|:---------------------------|:---------------------------|:-------------------------|---------------------:|
|  0 | Biki - TECUSDT    | 21.69386074 USDT | 21.60458081 USDT           | 0.08927993 USDT            | 0.84554375 USDT          |          28577.3     |
|  1 | Binance - XEMBTC  | -3.55974813 BTC  | -3.55514961 BTC            | -0.00459852 BTC            | 11.31867593 BTC          |            924.772   |
|  2 | Binance - XEM/ETH | -15.38320177 ETH | -15.32533185 ETH           | -0.05786992 ETH            | 35.44241506 ETH          |           1273.25    |
|  3 | bitfinex ant/btc  | 1.64774952 BTC   | 1.65615563 BTC             | -0.00840611 BTC            | 0.01056552 BTC           |              5.25073 |
|  4 | Bitfinex ANT/ETH  | -15.93635190 ETH | -15.60342681 ETH           | -0.33292509 ETH             | 0.00000000 ETH           |             99.3833  |
票数 6
EN

Stack Overflow用户

发布于 2020-09-08 01:38:15

你的“数据”应该是一个编码的字符串。

代码语言:javascript
复制
message = 'string'
data = message.encode('utf-8')
票数 0
EN

Stack Overflow用户

发布于 2020-09-15 14:01:11

在测试之后,这个方法应该可以工作:

用于私有通道:确保您的bot能够访问您要发送消息的通道。如果它们不在其中,机器人添加到通道中。

代码语言:javascript
复制
import pandas
import requests
from pandas import DataFrame

from io import StringIO

csv_string = StringIO("""Bot instance,Current,Potential profit,Potential Profit 24h ago,Change last 24h Volume, 24h Volume Market
Biki - TECUSDT,21.69386074 USDT,21.60458081 USDT,0.08927993 USDT,0.84554375 USDT,28577.2565559176490500
Binance - XEMBTC, -3.55974813 BTC,-3.55514961 BTC,-0.00459852 BTC,11.31867593 BTC,924.7716585800000000
Binance - XEM/ETH,-15.38320177 ETH, -15.32533185 ETH,-0.05786992 ETH,35.44241506 ETH,1273.2456803600000000
bitfinex ant/btc, 1.64774952 BTC,1.65615563 BTC,-0.00840611 BTC,0.01056552 BTC,5.2507294117379079
Bitfinex ANT/ETH, -15.93635190 ETH,-15.60342681 ETH,-0.33292509 ETH,0.00000000 ETH,99.3832923859608600""")

if __name__ == '__main__':
    data: DataFrame = pandas.read_csv(csv_string)
    response = requests.post(
        'https://slack.com/api/chat.postMessage',
        data={
            'token': 'your-token',
            'channel': '#the-channel',
            'text': data.to_markdown() # can be what ever you want, ie: data.to_csv()
        }
    )
    print(response.json())

编辑松弛结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63781437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档