我有一个文本文件,其中列出了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样式),返回的API调用:
"viewCount": "1895378471",
"likeCount": "8110831",
"dislikeCount": "976065",
"favoriteCount": "0",
"commentCount": "5100187"我还计算自定义值,例如每个视频包含在文件中的次数,每次递增一次。
我需要将所有这些信息记录到某种类型的Python数据结构中,如下所示:
videoID , viewCount, count, etc
9bZkp7q19f0, 1895378471, 10000
t4H_Zoh7G5A, 512345678, 10000由于视频in经常在输入文件中重复,所以我不只是在数据结构中附加新行,而是需要能够找到现有的行,并增加计数的值。
我认为像"videoID“、”计数“等文本并不一定要在数据结构中,只要我知道每一列代表什么,二维类型的数组就可以了。
这个问题的要点是,我试图决定哪种类型的数据结构是最好的。性能是至关重要的。
如果数据结构中已经存在该行,那么我必须能够通过videoID快速确定键,所以如果我能够索引第一列,这将是理想的。
哪种类型的Python数据结构能够做到这一点?
发布于 2014-02-02 06:51:39
将viewCount和timesPreferred的元组存储在一个dict中,使用videoID作为键。更新每个条目将在固定时间内运行。
对于额外的数据,请等到将数据放入数据库后才能获得数据。你数数的时候把东西弄得乱七八糟是没有意义的。
发布于 2014-02-02 06:56:29
一份字典的清单应该可以。但是,为了获得最佳性能,我将字典列表存储在“腌制”文件中,使用的是cpickle (一个更快版本的泡菜)。
http://docs.python.org/2/library/pickle.html#pickle-example
https://stackoverflow.com/questions/21507870
复制相似问题