Vik*_*r.w 5 python pandas slack
我正在尝试使用以下小脚本在 slack 的频道上发送一个熊猫数据帧:
import requests
URL = 'XXXXXX'
response = requests.post(
URL, data={dataframe}
)
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我收到以下错误消息:'DataFrame' objects are mutable, thus they cannot be hashed!我也尝试将它作为 json 发送,但它对用户来说是不可读的。关于如何正确执行此操作的任何想法?谢谢!
我的数据框看起来如下:
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
Run Code Online (Sandbox Code Playgroud)
当我将它作为 json 发送到 slack 时,它看起来像这样:
{"Bot instance":{"0":"Biki - TECUSDT","1":"Binance - XEMBTC","2":"Binance - XEM/ETH","3":"bitfinex ant/btc", "4":"Bitfinex ANT/ETH","5":"Bitfinex ANT/USD","6":"Bitfinex ODE/BTC","7":"Bitfinex ODE/USD","8":"Bitfinex - RIFBTC","9":"Bitfinex - RIFUSD","10":"Bitfinex - VLD/USD","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":"Hitbtc - PLBTETH","21":"Hitbtc - PLR/BTC","22":"Hitbtc - PLR/ETH","23":"Hitbtc - PLR/USDT","24":"Kucoin - RIFBTC","25":"LGO - LGOUSD","26":"Liquid - RIFUSD","27":"Livecoin - PLBTBTC","28": "Livecoin - PLBTETH","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 USD","6":null,"7":"-163.0524
用户不可读
您可以使用pandas.DataFrame.to_markdown将数据编码为字符串。这在 Slack 中应该是可读的。
response = requests.post(
URL,
data={'<payload_key>': dataframe.to_markdown()}
)
Run Code Online (Sandbox Code Playgroud)
to_markdown 给出这样的字符串:
| | 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 |
Run Code Online (Sandbox Code Playgroud)
小智 0
您的“数据”应该是编码字符串,例如
message = 'string'
data = message.encode('utf-8')
Run Code Online (Sandbox Code Playgroud)