json to html table,GitHub - latture/json2table: Converts JSON to an HTML table

json2table

68747470733a2f2f7472617669732d63692e6f72672f6c6174747572652f6a736f6e327461626c652e7376673f6272616e63683d6d617374657268747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f6c6174747572652f6a736f6e327461626c652f62616467652e7376673f6272616e63683d6d6173746572

This is a simple Python package that allows a JSON object to be converted to HTML. It provides a convert function that accepts a dict instance and returns a string of converted HTML. For example, the simple JSON object {"key" : "value"} can be converted to HTML via:

>>> from json2table import convert

>>> json_object = {"key" : "value"}

>>> build_direction = "LEFT_TO_RIGHT"

>>> table_attributes = {"style" : "width:100%"}

>>> html = convert(json_object, build_direction=build_direction, table_attributes=table_attributes)

>>> print(html)

'

keyvalue
'

The resulting table will resemble

key

value

More complex parsing is also possible. If a list of dict's provides the same list of keys, the generated HTML with gather items by key and display them in the same column.

{"menu": {

"id": "file",

"value": "File",

"menuitem": [

{"value": "New", "onclick": "CreateNewDoc()"},

{"value": "Open", "onclick": "OpenDoc()"},

{"value": "Close", "onclick": "CloseDoc()"}

]

}

}

Output:

menu

menuitem

onclick

value

CreateNewDoc()

New

OpenDoc()

Open

CloseDoc()

Close

id

file

value

File

It might, however, be more readable if we were able to build the table from top-to-bottom instead of the default left-to-right. Changing the build_direction to "TOP_TO_BOTTOM" yields:

menu

menuitem

id

value

onclick

value

file

File

CreateNewDoc()

New

OpenDoc()

Open

CloseDoc()

Close

Table attributes are added via the table_attributes parameter. This parameter should be a dict of (key, value) pairs to apply to the table in the form key="value". If in our simple example before we additionally wanted to apply a class attribute of "table table-striped" we would use the following:

>>> table_attributes = {"style" : "width:100%", "class" : "table table-striped"}

and convert just as before:

>>> html = convert(json_object, build_direction=build_direction, table_attributes=table_attributes)

Details

This module provides a single convert function. It takes as input the JSON object (represented as a Python dict) and, optionally, a build direction and a dictionary of table attributes to customize the generated table:

convert(json_input, build_direction="LEFT_TO_RIGHT", table_attributes=None)

Parameters

json_input : dict

JSON object to convert into HTML.

build_direction : {"TOP_TO_BOTTOM", "LEFT_TO_RIGHT"}, optional

String denoting the build direction of the table. If "TOP_TO_BOTTOM" child

objects will be appended below parents, i.e. in the subsequent row. If "LEFT_TO_RIGHT"

child objects will be appended to the right of parents, i.e. in the subsequent column.

Default is "LEFT_TO_RIGHT".

table_attributes : dict, optional

Dictionary of (key, value) pairs describing attributes to add to the table.

Each attribute is added according to the template key="value". For example,

the table { "border" : 1 } modifies the generated table tags to include

border="1" as an attribute. The generated opening tag would look like

Returns

str

String of converted HTML.

Installation

The easiest method on installation is to use pip. Simply run:

>>> pip install json2table

If instead the repo was cloned, navigate to the root directory of the json2table package from the command line and execute:

>>> python setup.py install

Tests

In order to verify the code is working, from the command line navigate to the json2table root directory and run:

>>> python -m unittest tests.test_json2table

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值