output.py 文件源码

python
阅读 32 收藏 0 点赞 0 评论 0

项目:EQUEL 作者: thomaspatzke 项目源码 文件源码
def extractFieldsFromDoc(self, doc, prefix=""):
        """Extract field values defined in self.columns from document into a dict required for csv.DictWriter."""
        res = dict()
        for field, value in doc.items():
            if type(value) == dict:             # subdocument
                res.update(self.extractFieldsFromDoc(value, prefix + field + "."))
            elif type(value) == list:
                if type(value[0]) == dict:      # multiple nested documents
                    nestedcolfield = self.params['nestedcolfield']
                    nestedvalfield = self.params['nestedvalfield']
                    if nestedcolfield != None and nestedvalfield != None:
                        for subdoc in value:
                            try:
                                nestedcol = prefix + field + "." + subdoc[nestedcolfield]
                                if nestedcol in self.columns:
                                    res[nestedcol] = subdoc[nestedvalfield]
                            except KeyError:    # nested document doesn't contains column name or value field
                                pass
                else:                           # multivalued field
                    if prefix + field in self.columns:
                        res[prefix + field] = self.params["listsep"].join(value)
            else:                               # simple value
                if prefix + field in self.columns:
                    res[prefix + field] = value
        return res
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号