【问题标题】:Python 3.9 caused TypeError: int() argument must be a string, a bytes-like object or a number, not '_NoValueType'Python 3.9 导致 TypeError: int() argument must be a string, a bytes-like object or a number, not \'_NoValueType\'
【发布时间】:2022-11-11 20:06:43
【问题描述】:

我目前正在使用 pandas 1.1.5 将 python 2.7 转换为 python 3.9。以下代码在 python 2.7 中工作,但在 3.9 中导致错误(或者由于升级 pandas)

agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
headers = {'User-Agent': agent}
query = requests.get('https://query1.finance.yahoo.com/v7/finance/quote?symbols=AALI.JK')
data = query.json()
data = pd.DataFrame(data['quoteResponse']['result'])
data['regularMarketTime']= pd.to_datetime(data['regularMarketTime'],unit='s').dt.strftime("%Y-%m-%d")
data = data[['regularMarketTime','symbol','regularMarketOpen','regularMarketDayHigh','regularMarketDayLow','regularMarketPrice','regularMarketVolume']]
data_append.append(data)

错误如下 TypeError: int() argument must be a string, a bytes-like object or a number, not '_NoValueType' 在线data = pd.DataFrame(data['quoteResponse']['result'])。发生错误的原因以及如何解决。

【问题讨论】:

    标签: python json python-3.x pandas


    【解决方案1】:

    这是 python 3.9 和 pandas 1.1.5 的问题。 通过使用 pandas 1.1.5 运行 python 3.8 来解决问题

    【讨论】:

      【解决方案2】:

      我认为data = pd.DataFrame(data.loc['quoteResponse']['result']) 可以工作,如果可以,请告诉我

      编辑:

      之前这样做,将字典变成数据框,然后你可以使用.loc

      pd.DataFrame.from_dict(data)

      【讨论】:

      • 它不适用于AttributeError: 'dict' object has no attribute 'loc'。这是由于data = query.json() 之后的数据在字典中
      猜你喜欢
      • 2021-12-13
      • 2021-02-02
      • 2019-12-29
      • 2021-06-25
      • 2016-11-13
      • 2022-12-26
      • 1970-01-01
      • 2012-05-15
      • 2018-06-07
      相关资源
      最近更新 更多