尝试遍历具有其他“子目录”的mongo集合时,我遇到很多麻烦。
基本上,在我的集合的结构中,我有一个代表其他字符串的对象:
例如:
我正在尝试获取此收藏集的统计信息:
这是我现在使用的代码:
cursor = mycol.find(
{}, {'_id': 1, 'stats.total': 1, 'stats.additions': 1, 'stats.deletions': 1})
with open('commits.csv', 'w') as outfile:
fields = ['id', 'stats.total', 'stats.additions', 'stats.deletions']
write = csv.DictWriter(outfile, fieldnames=fields)
write.writeheader()
for commits in cursor:
id = commits['_id']
for stats in commits['stats']:
flattened_record = {
'_id': id,
'stats.total': stats['total'],
'stats.additions': stats['additions'],
'stats.deletions': stats['deletions']
}
write.writerow(flattened_record)
我不断收到TypeError:字符串索引必须是整数,并且stats对象的类型似乎是unicode。
有人知道如何解决吗?
感谢您的时间,
答案 0 :(得分:0)
我已通过首先遍历统计信息然后分别检查总数,添加和删除来解决此问题:
if 'stats' in commits:
stats = commits['stats']
for key in stats:
if key == 'deletions':
deletions = stats[key]
elif key == 'additions':
additions = stats[key]
else:
total = stats[key]