AttributeError: 'str' object has no attribute 'tk
时间: 2023-10-08 15:13:05 浏览: 361
这个错误通常发生在尝试在字符串对象上访问名为 'tk' 的属性时。正常情况下,字符串对象没有名为 'tk' 的属性。这个错误可能是由于代码逻辑错误或者数据类型不匹配引起的。
请检查你的代码,确保你在正确的对象上使用了 'tk' 属性。如果你需要进一步帮助,请提供更多的代码细节和上下文信息,以便我能够更准确地帮助你解决问题。
相关问题
AttributeError: 'str' object has no attribute 'tk'
AttributeError: 'str' object has no attribute 'tk'是一个错误消息,它表示在对字符串对象调用'tk'属性时发生错误。这意味着在代码中,你尝试访问一个字符串对象上不存在的属性。根据引用和引用的内容,我们可以推测出可能的原因是在自定义函数中,当输入参数不是字符串类型时,函数返回的是None。因此,当你尝试在返回的字符串对象上调用'tk'属性时,就会出现属性错误。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [[报错]深析AttributeError: ‘NoneType‘ object has no attribute ‘xxx‘(持更)](https://blog.csdn.net/panbaoran913/article/details/124650015)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [python报错: list object has no attribute shape的解决](https://download.csdn.net/download/weixin_38748721/13708867)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
AttributeError: 'str' object has no attribute 'strftime'
这个错误提示表明,你尝试对一个字符串类型的对象使用`strftime`方法,但是字符串类型没有这个方法,因此出现了错误。这通常是由于日期格式的错误引起的。
为了解决这个问题,你需要在将字符串转换成日期之前,先将字符串中的日期格式化为与`%Y/%m/%d`相同的格式。修改后的代码如下:
```
import datetime
import openpyxl
# 获取工作薄1中所有工作表名
wb1 = openpyxl.load_workbook('工作薄1.xlsx')
sheets1 = wb1.sheetnames
# 打开另一个工作薄2
wb2 = openpyxl.load_workbook('工作薄2.xlsx')
ws2 = wb2.active
# 获取当前时间
now = datetime.datetime.now().strftime('%H:%M')
# 判断时间段并筛选数据
if '08:00' <= now <= '19:00':
data_col = 7
data_value = 'D'
else:
data_col = 7
data_value = 'N'
# 筛选日期为当前日期的数据并写入字典中
data_dict = {}
today = datetime.datetime.now().strftime('%Y/%m/%d')
for row in ws2.iter_rows(min_row=2, min_col=3, max_col=3):
if row[0].value is not None:
date_str = row[0].value.strftime('%Y/%m/%d')
if date_str == today:
row_data = [cell.value for cell in ws2[row[0].row]]
if row_data[data_col - 1] == data_value:
data_dict[row_data[0]] = row_data
# 判断列表1中的内容是否已经点检,并将结果写入列表
unique_list = []
for sheet_name in sheets1:
if sheet_name in data_dict.keys():
if '已点检' in data_dict[sheet_name]:
unique_list.append(sheet_name + ' 已点检')
else:
unique_list.append(sheet_name + ' 未点检')
else:
unique_list.append(sheet_name + ' 未点检')
# 显示数据到列表框中
for item in unique_list:
self.unique_listbox.insert(tk.END, item)
```
这样,就可以解决这个问题了。在筛选日期时,先将单元格中的日期转换成字符串格式,然后再与当前日期进行比较,这样就可以保证日期格式的一致性,避免出现错误。
阅读全文