我正在将一系列mongo集合导出到csv文件。我通过调用字典显式设置要导出的字段名称,如果给定文档中不存在某个字段,我仍然想在csv列中创建一个空字段
我目前在我的控制台中收到这些错误:
too many positional arguments: ['pfrm_uid', 'mark']]
所有集合都会发生这种情况。我发现最奇怪的是错误中有2个右括号。
for item_name in self.exported_fields_Dict.keys():
fields_to_export = self.exported_fields_Dict[item_name]
self.item_count_dict[item_name] = self.item_count_dict[item_name] + 1
os.system("mongoexport --host localhost
--collection {0}
--db scrapy-mongodb-test
--type=csv
--out {1}.csv
--fields {2}".format(
item_name,
item_name,
fields_to_export))
下面是我从
中提取集合名称和字段名称的字典// collection name : fields_to_export
exported_fields_Dict = {
'ent_pfrm': ['pfrm_uid', 'mark'],
'ent_indv': ['indv_uid', 'fName', 'lName', 'gender', 'DOB'],
'ent_meet': ['meet_uid', 'name', 'start_date', 'end_date']
}
任何提示/建议表示赞赏!
答案 0 :(得分:1)
mongoexport脚本将逗号分隔的字段视为fields参数的字符串。
您可以测试并发现这不是一个字符串:
> print(exported_fields_Dict['ent_pfrm'])
['pfrm_uid', 'mark']
您可以将字符串存储为dict值,例如"pfrm_uid, mark"
或用格式方法中的最后一个参数替换
",".join( fields_to_export[item_name] )
打印出你想要的内容:pfrm_uid,mark