Mongoexport空白字段到csv

时间:2017-03-06 23:56:26

标签: python mongodb csv

我正在将一系列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']
    }

任何提示/建议表示赞赏!

1 个答案:

答案 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