将 QVD 文件导入 Jupyter notebook - python2

Import QVD file into Jupyter notebook - python2

我需要使用 pandas 导入一些 QVD 文件以便在 python 中使用它们。有谁知道是否可以将 qvd 文件作为数据框导入到 python2 的 jupyter 笔记本中?

不,你不能,请参阅 http://help.qlik.com/en-US/sense/September2017/Subsystems/Hub/Content/Scripting/work-with-QVD-files.htm

A QVD (QlikView Data) file is a file containing a table of data exported from Qlik Sense. QVD is a native Qlik format and can only be written to and read by Qlik Sense or QlikView.

这可能有帮助:

def qvd_to_pandas(src_qvd):

    from tempfile import TemporaryDirectory
    from pathlib import Path

    from win32com.client import Dispatch
    import pandas as pd

    with TemporaryDirectory(dir='.') as tmp_dir:
        tmp_csv = Path(tmp_dir).absolute() / 'tmp.csv'
        tmp_qvw = Path(tmp_dir).absolute() / 'tmp.qvw'

        script = f'''    
        ExportTable: REPLACE LOAD * FROM {Path(src_qvd).absolute()} (qvd);
        STORE ExportTable INTO {tmp_csv} (txt);
        DROP TABLE ExportTable;
        '''

        qv = Dispatch('QlikTech.QlikView')
        active_doc = qv.CreateDoc()

        doc_properties = active_doc.GetProperties()
        doc_properties.script = doc_properties.script + script

        active_doc.SetProperties(doc_properties)
        active_doc.SaveAs(tmp_qvw)
        active_doc.ReloadEx(0, 1)

        active_doc.CloseDoc()
        qv.Quit()

        df = pd.read_csv(open(tmp_csv, encoding='utf8'), dtype=str)

    return df

df = qvd_to_pandas('my_qvd_file.qvd')

复制自:https://community.qlik.com/t5/New-to-QlikView/How-to-extract-QVD-data-using-python/td-p/1398020

今年(2021 年)似乎开发了一个 python 软件包 https://pypi.org/project/qvd/ 也许可以提供帮助。我会在身边测试。