Python module for converting a html table to a list of dictionaries.
Installing from PyPI using pip
:
$ pip install table2dicts
Installing from source:
$ python setup.py install
Give it some html with a table
:
>>> table2dicts(''' ... <table> ... <thead> ... <tr><th>a</th><th>b</th><th>c</th></tr> ... </thead> ... <tbody> ... <tr><td>1</td><td>2</td><td>3</td></tr> ... <tr><td>4</td><td>5</td><td>6</td></tr> ... </tbody> ... </table> ... ''') [OrderedDict([('a', '1'), ('b', '2'), ('c', '3')]), OrderedDict([('a', '4'), ('b', '5'), ('c', '6')])]
No thead
or tbody
, no problem:
>>> table2dicts(''' ... <table> ... <tr><th>a</th><th>b</th><th>c</th></tr> ... <tr><td>1</td><td>2</td><td>3</td></tr> ... <tr><td>4</td><td>5</td><td>6</td></tr> ... </table> ... ''') [OrderedDict([('a', '1'), ('b', '2'), ('c', '3')]), OrderedDict([('a', '4'), ('b', '5'), ('c', '6')])]
When no th
is present, the first row of td
elements is used as a header:
>>> table2dicts(''' ... <table> ... <tr><td>a</td><td>b</td><td>c</td></tr> ... <tr><td>1</td><td>2</td><td>3</td></tr> ... <tr><td>4</td><td>5</td><td>6</td></tr> ... </table> ... ''') [OrderedDict([('a', '1'), ('b', '2'), ('c', '3')]), OrderedDict([('a', '4'), ('b', '5'), ('c', '6')])]