You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3运行代码提示'NoneType'对象无'append'属性是什么原因?

问题原因

  • 核心报错原因有两种可能:
    1. 你使用的pandas版本为2.0及以上版本,该版本已经正式移除了DataFrame.append()方法,调用该方法会直接返回None,第一次循环赋值后extracted_data就会被覆盖为None,下一次循环调用None.append就会抛出该错误;
    2. 你自定义的extract_from_json函数没有显式返回合法的DataFrame对象,默认返回None,旧版本pandas的append方法接收None作为参数后会返回None,同样会导致extracted_data被赋值为空,触发后续报错。
  • 附加语法错误:你代码中的return extract缩进位置错误,完全处于extract()函数定义的外部,不会被当作函数返回逻辑执行;同时你返回的是extract函数对象本身,而非你处理得到的extracted_data变量,就算没有前面的报错,调用函数也拿不到预期的处理结果。
  • 逻辑小问题:glob.glob('file_1.json')只会匹配文件名完全为file_1.json的文件,循环最多执行一次,如果你是要匹配同前缀的多份json文件,应该把匹配规则修改为file_*.json这类带通配符的格式。

修复方案

建议使用pd.concat替代已经废弃的append方法,同时修正缩进和返回值,参考代码如下:

import pandas as pd
import glob

# 注意保证你自定义的extract_from_json函数正常返回DataFrame格式的结果
def extract_from_json(file_path):
    # 这里是你原有extract_from_json的实现逻辑
    pass

def extract():
    extracted_data = pd.DataFrame(columns = ['Name','Last'])
    for jsonfile in glob.glob('file_*.json'): # 按需调整匹配规则
        temp_df = extract_from_json(jsonfile)
        # 用concat替代废弃的append方法
        extracted_data = pd.concat([extracted_data, temp_df], ignore_index = True)
    # 修正缩进和返回值
    return extracted_data

内容的提问来源于stack exchange,提问作者Markie Romano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 22:45:04