首页 > 编程问答 >如何忽略或绕过导致 NoneType 不可迭代对象的实例

如何忽略或绕过导致 NoneType 不可迭代对象的实例

时间:2024-07-20 23:30:08浏览次数:12  
标签:python edgar

我正在尝试解析 Edgar 数据库中 10K 的部分,当我运行以下代码时,

# pip install edgartools
import pandas as pd
from edgar import *

# Tell the SEC who you are
set_identity("Your Name [email protected]")
filings2 = get_filings(form='10-K', amendments=False, 
filing_date="2024-03-01") 

filings2_df = filings2.to_pandas()
# Create a list to store the Item 1c text
item1c_texts = []

# Iterate over each filing
for filing in filings2:
    url = filing.document.url
    cik = filing.cik
    filing_date = filing.header.filing_date,
    reporting_date = filing.header.period_of_report,
    comn = filing.company
    
    # Extract the text for Item 1c
    TenK = filing.obj()

    item1c_text = TenK['Item 1C']
    item1c_texts.append({
        'CIK': cik,
        'Filing Date': str(filing_date),
        'Item 1c Text': item1c_text,
        'url': url,
        'reporting_date': str(reporting_date),
        'comn': comn
    })

# Create a DataFrame from the Item 1c text data
item1c_df = pd.DataFrame(item1c_texts)

我收到此错误 -

TypeError: cannot unpack non-iterable NoneType object
Cell In[463], line 11
      9 if TenK is not None:
     10     TenK = filing.obj()
---> 11 item1c_text = TenK['Item 1C']
     12 item1c_texts.append({
     13     'CIK': cik,
     14     'Filing Date': str(filing_date),
   (...)
     18     'comn': comn
     19 })
Show Traceback

有什么方法可以绕过不可迭代的 NoneType 问题吗?我在这个平台上读到了许多其他 NoneType 问题,但没有一个对我很有帮助。


错误信息“TypeError: cannot unpack non-iterable NoneType object”表明 TenK['Item 1C'] 这一行代码中的 TenK 变量有时是 None ,而你试图把它当作字典来访问。

你可以通过在访问 TenK 之前检查它是否为 None 来解决这个问题:

for filing in filings2:
    # ... other code ...

    # Extract the text for Item 1c
    TenK = filing.obj()

    # Check if TenK is not None before accessing it
    if TenK is not None:
        item1c_text = TenK.get('Item 1C', 'Item not found')  
        item1c_texts.append({
            'CIK': cik,
            'Filing Date': str(filing_date),
            'Item 1c Text': item1c_text,
            'url': url,
            'reporting_date': str(reporting_date),
            'comn': comn
        })
    else:
        # Handle the case where TenK is None, for example:
        item1c_texts.append({
            'CIK': cik,
            'Filing Date': str(filing_date),
            'Item 1c Text': 'Item not found',  # Or any other default value
            'url': url,
            'reporting_date': str(reporting_date),
            'comn': comn
        })

这段代码做了以下改进:

  1. 检查 TenK 是否为 None : 在尝试访问 TenK['Item 1C'] 之前,先检查 TenK 是否为 None
  2. 处理 TenK None 的情况 : 如果 TenK None ,则可以跳过该文件或采取其他适当的行动,例如记录错误或使用默认值。
  3. 使用 .get() 方法 : 使用字典的 .get() 方法可以避免出现 KeyError 。如果键 'Item 1C' 不存在, TenK.get('Item 1C', 'Item not found') 将返回 'Item not found' 而不是引发异常。

通过进行这些更改,的代码将能够更稳健地处理可能出现的 NoneType 错误。

标签:python,edgar
From: 78773176

相关文章

  • Python:动态爱心代码
    importrandomfrommathimportsin,cos,pi,logfromtkinterimport*CANVAS_WIDTH=640CANVAS_HEIGHT=480CANVAS_CENTER_X=CANVAS_WIDTH/2CANVAS_CENTER_Y=CANVAS_HEIGHT/2IMAGE_ENLARGE=11HEART_COLOR="#FF99CC"defcenter_......
  • 如何在 PYTHON 中查找输入数字的千位、百位、十位和个位中的数字?例如:256 有 6 个一、5
    num=int(input("Pleasegivemeanumber:"))print(num)thou=int((num//1000))print(thou)hun=int((num//100))print(hun)ten=int((num//10))print(ten)one=int((num//1))print(one)我尝试过这个,但它不起作用,我被困住了。代码几乎是正确的,但需......
  • ModuleNotFoundError:没有名为“pyaes”的模块 python 虚拟机
    在此处输入图像描述当我在启动python项目的虚拟机上构建某个工具时,几秒钟后会出现此消息。我已经尝试重新安装pyaes但无济于事。谁能帮我?非常感谢我已经尝试重新安装pyaes但无济于事,我搜索了tepyaes模块的十个路径,但我没有找到它,而我在另一台虚拟机上完成了......
  • 如何通过 mutagen (Python) 为 mp3 文件中的情绪添加价值?
    我找不到通过mutagen(Python库)将情绪写入mp3文件的方法初始化:frommutagen.mp3importMP3frommutagen.id3importID3,TIT2,TALB,TPE1,TPE2,TCON,TPUB,TENC,TIT3,APIC,WOAR,PRIVaudio=MP3(mp3_file,ID3=ID3)我可以使用audio['TIT3']=TIT3(......
  • 使用 Python 操作 Splunk
    使用Python操作Splunk目录使用Python操作Splunk1参考文档2安装PythonSplunk-SDK3连接splunk4配置查询5参考1参考文档SplunkGithub地址:GitHub-splunk/splunk-sdk-python:SplunkSoftwareDevelopmentKitforPythonSplunk开发者文档地址:Pythontools|......
  • Python:如何通过请求帖子对评论进行投票?
    我对评论进行投票的代码无法正常工作。它返回一个http500错误。我有一个使用用户登录的Python程序,它应该自动对评论进行投票。我的代码如下:frombs4importBeautifulSoupimportrequestslogin_url="https://xxxxxxxxxxx/auth/login"login_url_post="http......
  • python_day7(补1)
    数据类型​ 之前为列表类型​ 插入一个元组的介绍 之后还有字典,三者区别为括号方式()[]{}元组类型(tuple)使用:先定义一个元组数据​ vegetable_tuple='(tomato','corn','cucumber','carrot','corn','pumpkin)'与列表类型格式很像,不过只能取不能改,需要特......
  • 在 python 中写入 %appdata% 时出现奇怪的行为
    我试图将一些数据写入%appdata%。一切似乎都像Script1的输出中所示的那样工作。正在创建新目录并保存文件,并且也成功检索数据。但尝试查看文件资源管理器中的数据时,该文件夹不存在!CMD也找不到文件和目录。后来我手动创建了文件,检查了一下,发生了什么。CMD现在可以找到该文......
  • 使用 selenium 在 python 中打开 chrome 中的链接
    通过此链接https://bancadatistatisticaoas.inail.it/analytics/saw.dll?Dashboard&PortalPath=%2Fshared%2FBDS%2F_portal%2FINF_Definiti_Industria_e_Servizi我需要单击“FCostruzioni”,然后单击F41COSTRUZIONIED埃迪菲西。这是我的代码,但它不起作用。我做错了......
  • 七大排序算法的Python实现
    七大排序算法的Python实现1.冒泡排序(BubbleSort)算法思想冒泡排序通过重复交换相邻的未按顺序排列的元素来排序数组。每次迭代都将最大的元素“冒泡”到数组的末尾。复杂度分析时间复杂度:O(n^2)空间复杂度:O(1)defbubble_sort(arr):n=len(arr)for......