使用docx以字典格式解析表数据

时间:2016-12-09 03:18:57

标签: python list dictionary python-docx

我正在尝试使用Python docx模块解析一组特定的表数据。

表数据看起来像这样 enter image description here

我需要检索"当局"和各自的"版本"以键值格式,以便我可以使用该数据进行进一步处理。

如果我使用 -

,我无法迭代字典
d = OrderedDict(zip(table.cell(rowNo, 0).text, table.cell(rowNo, 2).text))

给了我orderedDictionary但我无法使用d['Juno']访问这些值 我希望能给我4.5.6

from docx import Document

document = Document('myfile.docx')

    for table in document.tables:
        printTable = False
        rowNo = 0;
        for row in table.rows:
            for cell in row.cells:
                if cell.text == "Table2":
                    printTable = False
            if printTable:
                print (table.cell(rowNo, 0).text + '=' + table.cell(rowNo, 2).text)
            for cell in row.cells:
                if cell.text == "Authorities":
                    printTable = True
            rowNo += 1

我在解析后获得以下格式的数据 -

Juno=4.5.6
Acrux=3.5.6
Mars=5.6.7

1 个答案:

答案 0 :(得分:1)

您可以定义字典并实现此目的 -

from docx import Document

document = Document('myfile.docx')
data = {}
for table in document.tables:
    printTable = False
    rowNo = 0;
    for row in table.rows:
        for cell in row.cells:
            if cell.text == "Table2":
                printTable = False
        if printTable:
            data[table.cell(rowNo, 0).text] = table.cell(rowNo, 2).text
        for cell in row.cells:
            if cell.text == "Authorities":
                printTable = True
        rowNo += 1
print (data)

将以字典格式提供预期的数据