Python从抽象File对象中提取字段数据的方法求助
提取Python中File对象的字段数据
你拿到的File是自定义类的实例,下面给你几种直接可用的提取字段的方法:
直接访问实例属性
大多数情况下,这类自定义对象会把内部字典的键作为实例属性开放,直接用.就能获取:
# 假设你从数据库拿到的文件列表是files_list files_list = [File({'added_on': 1720455648, 'amount_left': 0, 'size': 1460305985, 'content_path': 'A:\\Very Very Important Folder', 'name': 'Important File1.pdf', 'format': 'pdf'})] # 取出列表里的第一个文件对象 file = files_list[0] # 逐个提取字段 name = file.name added_on = file.added_on size = file.size content_path = file.content_path # 注意:format是Python内置函数名,尽量别用它当变量名 file_format = file.format amount_left = file.amount_left
转成字典后提取
如果直接访问属性报错,说明对象把数据存在内部字典里,用vars()函数或者直接访问__dict__属性转成字典再提取:
# 把File对象转成字典 file_dict = vars(file) # 或者用 file_dict = file.__dict__,效果一致 # 从字典里取字段 name = file_dict['name'] added_on = file_dict['added_on'] # 其他字段同理
排查对象的可用属性(前两种方法失效时用)
要是上面的方法都不行,打印对象的所有属性和方法,找可用的入口:
print(dir(file))
输出里不带下划线的一般是公开属性或方法,比如如果有get_content_path()这种方法,就调用file.get_content_path()来获取对应值。
内容的提问来源于stack exchange,提问作者Whykioh
相关产品推荐
相关产品推荐

