python - Python - 使用字典 - 错误
问题描述
链接:https ://www.w3schools.com/python/trypython.asp?filename=demo_ref_dictionary_update
def read_wpl_file(self,start,filename):
self.tree = ET.parse(filename)
self.smil = self.tree.getroot()
self.head = self.smil.find("head")
self.title = self.head.find("title").text
self.body = self.smil.find("body")
self.seq = self.body.find("seq")
self.media = self.seq.findall("media")
self.songs = []
for song_in_playlist in self.media:
self.song = {}
self.song.update({"path": song_in_playlist.attrib("src")})
self.song.update({"album_title" : song_in_playlist.attrib("albumTitle")})
self.song.update({"album_artist" : song_in_playlist.attrib("albumArtist")})
self.song.update({"title" : song_in_playlist.attrib("trackTitle")})
self.song.update({"artist" : song_in_playlist.attrib("trackArtist")})
self.song.update({"duration" : song_in_playlist.attrib("duration")})
self.songs.append(self.song)
print(self.songs)
self.song.update({"path": song_in_playlist.attrib("src")})
TypeError: 'dict' object is not callable
解决方案
错误“object is not callable”意味着有问题的对象不支持函数调用语法(例如attrib("src")
)。
xml.etree.ElementTree.Element.attrib
是 a dict
,因此您必须使用括号语法 ( attrib["src"]
) 或其他dict
方法来访问其元素。
def read_wpl_file(self,start,filename):
self.tree = ET.parse(filename)
self.smil = self.tree.getroot()
self.head = self.smil.find("head")
self.title = self.head.find("title").text
self.body = self.smil.find("body")
self.seq = self.body.find("seq")
self.media = self.seq.findall("media")
self.songs = []
for song_in_playlist in self.media:
self.song = {}
self.song.update({"path": song_in_playlist.attrib["src"]})
self.song.update({"album_title" : song_in_playlist.attrib["albumTitle"]})
self.song.update({"album_artist" : song_in_playlist.attrib["albumArtist"]})
self.song.update({"title" : song_in_playlist.attrib["trackTitle"]})
self.song.update({"artist" : song_in_playlist.attrib["trackArtist"]})
self.song.update({"duration" : song_in_playlist.attrib["duration"]})
self.songs.append(self.song)
print(self.songs)
推荐阅读
- azureservicebus - Azure 服务总线和 CAP 定理
- android - 如何在张量流上检测图像对象?
- android - 在后台使用 Fence API 是否需要 Android P 中的前台服务
- javascript - 在 setInterval 内安排 setTimeout
- git - 如何快速从 SVN 迁移到 Git?
- python - 在 Python 中连接到 MS Access
- python - 带轴的 Matplotlib 图例
- jquery - 错误的参数传递给 jquery
- ruby-on-rails - 简单形式:有条件地禁用字段
- python - 使用numpy用不同的字符串替换数组中的整数