【问题标题】:What does "AttributeError: 'Worksheet' object has no attribute 'worksheet' " mean?“AttributeError: 'Worksheet' object has no attribute 'worksheet'” 是什么意思?
【发布时间】:2019-12-15 15:30:44
【问题描述】:

这是什么意思? AttributeError:“工作表”对象没有属性“工作表” 当我运行我的代码时出现这个错误,我不知道它是什么意思。

整个错误是:

      2 Jan = Jan.worksheet('01')
----> 3 while Jan.worksheet() !=  31:
      4   Jan = get_as_dataframe(Jan)
      5   Jan = pd.DataFrame(Jan)

AttributeError: 'Worksheet' 对象没有属性 'worksheet'

How to write a python for loop to reformat 31 different google sheets with pandas 这是指向同一代码的另一个问题的链接。

Jan = gc.open_by_url('with held for privacy reasons')
Jan = Jan.worksheet('01')
#for worksheet in Jan.worksheet:
#while Jan.worksheet is not 31:
if Jan.worksheet !=  31:
  Jan = get_as_dataframe(Jan)
  Jan = pd.DataFrame(Jan)
  day_month = Jan.worksheet
  new_header = Jan.iloc[0]
  Jan = Jan[1:]
  Jan.columns = new_header
  col_list = ['Time',   'Roof(in)', 'East(in)', 'West(in)', 'North(in)',    'Roof(out)',    'East(out)',    'West(out)',    'North(out)']
  Jan = Jan[col_list]
  Jan = Jan.dropna(axis=0, how='all')
  Jan = Jan[:-2]
  Jan.columns = ['DateTime',    'Business_Location_In', 'East_Location_In', 'West_Location_In', 'North_Location_In',    
                   'Business_Location_Out', 'East_Location_Out',    'West_Location_Out',    'North_Location_Out']
  Jan['DateTime'] = Jan['DateTime'].str.slice(6)
  Jan['DateTime'] = pd.to_datetime('2019-01- ' + worksheet+ Jan['DateTime'])
  for filename in Jan:
    Jan['Jan'+ day_month] = filenames
  while Jan.worksheet() < 31:
    Jan = Jan.worksheet(day_month + 1)
elif Jan.worksheet == 31:
  Jan = get_as_dataframe(Jan)
  Jan = pd.DataFrame(Jan)
  day_month = Jan.worksheet
  new_header = Jan.iloc[0]
  Jan = Jan[1:]
  Jan.columns = new_header
  col_list = ['Time',   'Roof(in)', 'East(in)', 'West(in)', 'North(in)',    'Roof(out)',    'East(out)',    'West(out)',    'North(out)']
  Jan = Jan[col_list]
  Jan = Jan.dropna(axis=0, how='all')
  Jan = Jan[:-2]
  Jan.columns = ['DateTime',    'Business_Location_In', 'East_Location_In', 'West_Location_In', 'North_Location_In',    
                   'Business_Location_Out', 'East_Location_Out',    'West_Location_Out',    'North_Location_Out']
  Jan['DateTime'] = Jan['DateTime'].str.slice(6)
  Jan['DateTime'] = pd.to_datetime('2019-01- ' + worksheet+ Jan['DateTime'])
  for filename in Jan: #this sets the file name to Jan and the day of month
    Jan['Jan'+ day_month] = filenames
print(filenames)

我只需要知道如何在我的代码中解决这个问题,如果有人也可以解决我的其他代码问题,那将不胜感激。

【问题讨论】:

  • 我会和你平起平坐。我认为你应该烧掉你所拥有的并重新开始。我无法告诉你正确的方法是什么,因为我根本无法告诉你你想要做什么。如果您真的需要帮助,您应该发布您的数据结构示例和您想要生成的示例。
  • 好的,感谢您的诚实意见,另外,如果您转到我的另一个问题的链接,它将解释代码的作用。
  • 寻求调试帮助的问题(“为什么这段代码不起作用?”)应包括所需的行为、特定问题或错误以及重现它所需的最短代码在问题本身。没有清晰的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。

标签: python pandas google-sheets google-colaboratory


【解决方案1】:

错误告诉你在某处你有一个Workbook 对象,而你正试图访问它的worksheet 属性,即Worksheet.worksheet。但是,Worksheet 没有可访问的 worksheet 属性。

错误只会告诉你什么是错的。其余的回溯会告诉您 在哪里 它是错误的。我的猜测是错误中引用的对象是Jan。如果您提供其余的回溯,那么我们在 SO 上的一个人可能会肯定地告诉您。

【讨论】:

  • 其余的回溯在链接上,但感谢您的输入。此外,我将如何修复我的代码,我的代码是上面的代码?
  • @UserX 查看您发布的内容,Jan 绝对是问题所在,或者至少尝试访问它没有的属性。我没有使用 Google 工具的经验,所以我得到的唯一反馈来自抽象层面——确定如何访问一张工作表,然后问自己是什么让每张工作表不同,以及如何在循环中更改该因素.在一个单独的问题中,您可能会突出显示代码的特定部分,并询问如何迭代页面而不保留实际格式化工作表的其余代码(因为该部分正在工作)。
猜你喜欢
  • 1970-01-01
  • 2021-03-13
  • 2022-12-01
  • 2020-04-26
  • 2020-11-21
  • 1970-01-01
  • 1970-01-01
  • 2022-12-15
  • 2022-12-27
相关资源
最近更新 更多