【问题标题】:AttributeError: 'NoneType' object has no attribute 'to_excel' [duplicate]AttributeError: \'NoneType\' 对象没有属性 \'to_excel\' [重复]
【发布时间】:2022-08-12 14:15:06
【问题描述】:

我通过 Python、Binance API 实现二级指标。 但是,即使我不断更改类型,它也被识别为“NoneType”,无法输出到 Excel。

def macd(symbol, timeinterval, limit, short, long, signal):
    df = Can.get_fu_coin(symbol, timeinterval, limit)
    # df = klines
    marketprice = \"https://fapi.binance.com/fapi/v1/ticker/24hr?symbol=\"+symbol
    res = requests.get(marketprice)
    data=res.json()
    price=float(data[\'lastPrice\'])
    
    df[\'open\']=df[\'open\'].astype(float)
    df2=df[\'open\'].to_numpy()
    df3=pd.DataFrame(df2, columns=[\'open\'])

    exp1=df3[\'open\'].ewm(span=short, adjust=False).mean()
    exp2=df3[\'open\'].ewm(span=long, adjust=False).mean()
    macd=exp1-exp2
    exp3=macd.ewm(span=signal, adjust=False).mean()        

    e1 = exp1.astype(float)
    e1 = e1.to_numpy()
    e1 = pd.DataFrame(e1, columns = [\'exp1\'])
    
    e2 = exp2.astype(float)
    e2 = e2.to_numpy()
    e2 = pd.DataFrame(e2, columns = [\'exp2\'])
    
    e3 = exp3.astype(float)
    e3 = e3.to_numpy()
    e3 = pd.DataFrame(e3, columns = [\'exp3\'])

    e4 = macd.astype(float)
    e4 = e4.to_numpy()
    e4 = pd.DataFrame(e4, columns = [\'macd\'])
    
    data = pd.concat([e1, e2, e3, e4], axis=1)
    data1 = data.apply(pd.to_numeric)
    print(data1)

ethusdt_macd = macd(\'BTCUSDT\', \'1m\', \'1500\', 12, 26, 9)
ethusdt_macd.to_excel(\"dd.xlsx\")
  • macd 没有 return,但您将这个不存在的返回值分配给变量 ethusdt_macd。目前尚不清楚您期望发生什么。也许您认为macd=exp1-exp2 是一种回报?在 VBA 中这样的事情实际上是有道理的,但 Python 不是 VBA。
  • print(data1) 之后添加return data1
  • 我错过了最基本的东西。谢谢你。

标签: python python-3.x


【解决方案1】:

在您的函数中,您没有返回任何内容。所以它使你的ethusdt_macdNoneType,因为它基本上什么都不是。

因此,当您调用to_excel 方法时,它找不到它,因为ethusdt_macdNone

您需要在函数中返回 data1(或您需要的任何变量)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多