output.py 文件源码

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

项目:EQUEL 作者: thomaspatzke 项目源码 文件源码
def render(self, result):
        output = engine.EQUELOutput(engine.EQUELOutput.TYPE_TEXT, ["search"])

        self.columns = list()
        # First step: determine all columns that should appear in result of search result CSV
        if len(self.params['fields']) > 0:    # if field whitelist is given, take this
            self.columns = self.params['fields']
        else:
            for doc in result.result["hits"]["hits"]:  # iterate over all documents from result and pull columns from there
                doccolumns = self.columnNames(doc["_source"])
                for column in doccolumns:
                    if column not in self.columns:
                        self.columns.append(column)

        import csv
        csvwriter = csv.DictWriter(output, self.columns, dialect=self.params['dialect'])
        if self.params['header']:
            csvwriter.writeheader()

        # Next: Iterate over documents and fill CSV with data
        for doc in result.result["hits"]["hits"]:
            extracted = self.extractFieldsFromDoc(doc["_source"])
            csvwriter.writerow(extracted)

        return output
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号