【发布时间】:2014-04-10 22:18:46
【问题描述】:
python 新手,还在学习!不过,我会一直在学习!
我有这么多字典。这些词典是通过非官方的 google music api 生成的,更具体地说,是下面链接中的 .py 文件。
我使用函数get_all_songs 并创建列表。我已成功将数据输出到文本文件。该函数声明它创建了一个很大的字典列表。
我在这里尝试了所有可以找到相关性的方法,但无法弄清楚如何访问其中的字典。每首歌都是一本字典。这些是我想做的事情:
从每个 字典。例如,下面粗体“评论”的第一个键有 没有钥匙,所以我会删除它。
从每个字典的特定键中获取信息。例如,从每首歌曲(每本词典)中获取 artist 值和 play count 值,并能够“播放”它。就像添加特定艺术家每首歌曲的所有播放次数一样。 http://newcoder.io/Part-2-Graph/
这是我从函数创建的文本文件中提取的字典。另外,我不知道为什么在每个键和值之前都有 (u') 或 (u")。我相信这只是通过 API 捕获的信息的一部分。我有预感,那些 U 正在弄乱字典的结构。但我可能完全错了。
{
u'comment': u'',
u'rating': u'0',
u'artistId': [u'Amicfexiiup7erm7exmzdyimive'],
u'composer': u'',
u'year': 0,
u'creationTimestamp': u'1395972652473326',
u'id': u'e6c27479-1d7d-37a6-a788-52bcb8477e42',
u'album': u'',
u'totalDiscCount': 0,
u'title': u"Chromeo - Jealous (I Ain't With It) (The Chainsmokers Remix).mp3",
u'recentTimestamp': u'1395972654776000',
u'albumArtist': u'',
u'trackNumber': 0,
u'discNumber': 0,
u'deleted': False,
u'storeId': u'Tshltra3tgk3q6ktjdxgxjtljky',
u'nid': u'Tshltra3tgk3q6ktjdxgxjtljky',
u'totalTrackCount': 0,
u'estimatedSize': u'3662316',
u'albumId': u'B4fo7oogd5ka2jfhlddjwazivlm',
u'beatsPerMinute': 0,
u'genre': u'',
u'playCount': 21,
u'artistArtRef': [{u'url': u'REMOVED LINK BECAUSE STACKOVERFLOW LIMIT'}],
u'kind': u'sj#track',
u'artist': u'Chromeo',
u'lastModifiedTimestamp':
u'1396305526006069',
u'clientId': u'9gG999dOb6DKkkGTcw/9GQ',
u'durationMillis': u'229000'
}
每个字典都有基本相同的键,因此它们在任何情况下都不是列表唯一的。
对不起,不够简洁!无论如何感谢您的宝贵时间!
【问题讨论】:
-
u前缀表示这些是 unicode 字符串,它根本不应该影响字典。 -
这对于我迄今为止尝试删除特定密钥对或访问每个字典中的特定密钥的一切都更有意义。当我尝试前面提到的一些事情时,有时会收到一个错误,指出它不是字符串。也许是因为它的类型实际上是 unicode?我尝试过使用 pop() 函数、del 运算符 (?) 和 re.sub() 等。谢谢马特。
-
您能否重新表述“随意访问特定的键值,以便我可以编写解析器,或者组织它们以便我可以处理信息。例如,假设我想提取 playCount,艺术家姓名等在此处的 python 教程中徒劳地解析和绘制图形......”请。
-
在我尝试过的多种方法中,这个错误出现在我身上最多:TypeError: list indices must be integers, not str
-
另外,根据您的错误,您应该真正阅读文档。使用整数访问列表和元组的元素。字典中的元素——键值对的值部分——通过字符串访问,这就是键。在上面的字典中,键是
artistId、rating等。基本上是左边的键。
标签: python list python-2.7 dictionary google-music