首页 > 编程问答 >XML 数据类型有问题

XML 数据类型有问题

时间:2024-09-24 09:07:20浏览次数:11  
标签:python xml xml-parsing

我想将 XML 文件转换为 CSV。但是,我不断收到错误 AttributeError: 'NoneType' object has no attribute 'integer'。

 xmlparse = Xet.parse('Apple Music Library.xml') 
 root = xmlparse.getroot() 
 for i in root: 
        Track_ID  = i.find("Tack ID").integer
        Name = i.find("Name").text
        Artist = i.find("Artist").text

我尝试将数据类型更改为文本,但没有任何变化。


代码中存在一些问题,导致出现“AttributeError: 'NoneType' object has no attribute 'integer'”错误。让我们逐步分解一下:

  1. 拼写错误: 代码中将“Track ID”拼写为“Tack ID”。
  2. integer 属性不存在: xml.etree.ElementTree 中的元素对象没有 integer 属性。要获取整数值,应该使用 .text 获取字符串值,然后使用 int() 将其转换为整数。
  3. 处理缺失标签: 如果 XML 文件中缺少“Track ID”、“Name”或“Artist”标签, find() 方法将返回 None 。尝试访问 None .text 属性将引发错误。

以下是更正后的代码:

import xml.etree.ElementTree as Xet

xmlparse = Xet.parse('Apple Music Library.xml')
root = xmlparse.getroot()

for i in root:
    track_id_element = i.find("Track ID")
    name_element = i.find("Name")
    artist_element = i.find("Artist")

    # 检查标签是否存在,然后再访问 .text 属性
    Track_ID = int(track_id_element.text) if track_id_element is not None else ''
    Name = name_element.text if name_element is not None else ''
    Artist = artist_element.text if artist_element is not None else ''

    print(f"Track ID: {Track_ID}, Name: {Name}, Artist: {Artist}")

这段更正后的代码首先检查标签是否存在。如果标签存在,它将获取 .text 属性并将其存储在相应的变量中。如果标签不存在,它将存储一个空字符串 ( '' ) 以避免错误。

这应该可以解决的问题并允许成功解析 XML 文件。请记住,在处理 XML 数据时,始终重要的是要考虑缺失标签的可能性并进行相应处理。

标签:python,xml,xml-parsing
From: 79016679

相关文章

  • 使用Python的subprocess执行另外一个python文件(应用之一是Pytorch中如何让多个不同的
    文章目录subprocess基础使用subprocess高级使用subprocess多进程subprocess执行情况在深度学习中的应用话不多说了,直接看代码。subprocess基础使用假设我要运行一个名字叫helloworld.py的文件,在主程序如下运行即可。主程序importsubprocessp=subprocess.Pop......
  • Python 入门教程(7)面向对象 | 7.2、成员变量
    文章目录一、成员变量1、成员变量的类型2、实例变量2.1、定义实例变量2.2、访问实例变量2.3、删除实例变量3、类变量3.1、定义类变量3.2、访问类变量3.3、修改类变量4、注意事项5、总结前言:在Python的面向对象编程(OOP)中,变量可以分为两大类:实例变量和类变量。这......
  • Python背记内容-2day
    Python运算符运算符描述[][:]下标,切片**指数~+-按位取反,正负号*/%//乘,除,模,整除+-加,减>><<右移,左移&按位与^|按位异或,按位或<=<>>=小于等于,小于,大于,大于等于==!=等于,不等于isisnot身份运算符innotin成......
  • Python可视化过程中.pictures.add这里一直报错,不明原因
    大家好,我是Python进阶者。一、前言前几天在Python白银交流群【沐子山树】问了一个Python可视化的问题,问题如下:importmatplotlib.pyplotasplt#创建一个简单的图表fig,ax=plt.subplots()ax.plot([1,2,3,4])ax.set_ylabel('somenumbers')#保存图表为PNG文件temp......
  • Python背记内容-1day
    变量命名需要遵循以下这些规则,这些规则又分为必须遵守的硬性规则和建议遵守的非硬性规则。硬性规则:规则1:变量名由字母、数字和下划线构成,数字不能开头。需要说明的是,这里说的字母指的是Unicode字符,Unicode称为万国码,囊括了世界上大部分的文字系统,这也就意味着中文、日文、希腊......
  • Python——第三方库不能用
    1.问题描述通过pip安装第三方库成功后,在pycharm中在.py文件导入第三方库显示没有这个库。2.解决方法2.1.情况1检查是否在创建项目时开启了虚拟环境。若开启了虚拟环境,项目文件夹会出现如图文件夹:此时有两种方法解决。方法1.直接在Python安装目录中找到需要的库,复制粘贴......
  • Python数据库连接池dbutils详解
    简介在python开发中,如果需要连接MySQL数据库并进行数据操作,可以使用dbutils模块,dbutils是python的一个数据库工具库下载对应模块pipinstallpymysqlpipinstalldbutils连接池配置信息说明使用示例importpymysqlfrompymysql.cursorsimportDictCursorfr......
  • Python中的“打开与关闭文件”:从入门到精通
    引言在日常生活中,我们经常会遇到需要读取或保存信息的情况,比如记录笔记、保存配置信息或者处理大量的数据文件等。对于程序员来说,如何高效、安全地管理这些信息显得尤为重要。Python中的文件操作功能强大且易于使用,可以帮助我们轻松完成各种任务。本文将详细介绍Python中打开与关......
  • Python中的文件读取艺术:从新手到高手的全面指南
    引言读取文件是任何编程语言中最基本也是最重要的功能之一。在日常开发工作中,我们常常需要处理各种类型的文件,如文本文件、CSV文件、JSON文件等。Python作为一门简洁易学的语言,在处理文件方面提供了非常强大的工具。无论是简单的日志分析、数据清洗还是复杂的机器学习任务,都能通过......
  • 为什么网上Python爬虫教程这么多,但是做爬虫的这么少呢?
    专业的爬虫已经有搜索公司、数据公司在做了,像百度、搜狗、德勤等等,相关的程序员岗位也不少。但大多数场景下都只需要简单的爬虫,数据量小、难度低,这样简单的爬虫压根不需要专门的人才,不管用Python,还是用爬虫软件,在很短的时间里都能搞定。其实爬虫无外乎抓包工具、解析工具、HTM......