我有一个文本文件,其中列出了10,000,000个YouTube视频ID,如下所示:
9bZkp7q19f0
t4H_Zoh7G5A
9bZkp7q19f0
etc...
我打开文件,获取YouTube视频ID,然后查看它的统计信息: https://www.googleapis.com/youtube/v3/videos?part=topicDetails,statistics&id=9bZkp7q19f0&key= {API_KEY}对于第一个视频(Psy Gangnam Style),API调用返回:
"viewCount": "1895378471",
"likeCount": "8110831",
"dislikeCount": "976065",
"favoriteCount": "0",
"commentCount": "5100187"
我还会计算自定义值,例如每个视频包含在文件中的次数,每次递增一次。
我需要将所有这些信息记录到某种类型的Python数据结构中,如下所示:
videoID , viewCount, count, etc
9bZkp7q19f0, 1895378471, 10000
t4H_Zoh7G5A, 512345678, 10000
由于videoID经常在输入文件中重复,我不只是将新行添加到数据结构中,而是需要能够找到现有的行,并增加count的值。
我认为像“videoID”,“count”等文本实际上并不一定要在数据结构中,二维类型的数组很好,只要我知道每列代表什么。
这个问题的关键是我正在试图决定哪种类型的数据结构最好。表现至关重要。
我必须能够通过videoID快速确定密钥,如果该行已存在于数据结构中,那么如果我可以索引第一列,那将是理想的。
什么类型的Python数据结构可以实现这一目标?
答案 0 :(得分:4)
使用videoID作为键,在dict中存储viewCount和timesPreferred的元组。更新每个条目将在固定时间内运行。
对于额外的数据,请等到您在获取数据之前将数据放入数据库。在你计算的时候,它没有任何意义。
答案 1 :(得分:0)
字典列表应该没问题。但是,我会使用cpickle(一种更快的pickle版本)将字典列表存储在“pickle”文件中,以获得最佳性能。