json2html模块转换结果异常 如何正确生成符合要求的HTML表格
问题成因
- 调用逻辑错误:
json2html.convert方法支持直接传入Python原生的列表/字典结构的JSON对象,不需要提前调用json.dumps转成JSON字符串,传入字符串会导致模块无法正确解析结构。 - JSON结构不符合转换规则:你当前定义的是包含3个独立单键对象的数组,模块识别到数组元素的键不统一时,会将每个对象作为独立列表项处理,因此生成无序列表包裹多个独立小表格的异常结果。
正确实现方案
1. 调整JSON结构
如果要生成包含firstColumn、secondColumn、thirdColumn三个列的表格,需要让数组中的每一个元素对应表格的一行,每行对象的键统一为列名,空表可以把值设为空字符串:
[ { "firstColumn": "", "secondColumn": "", "thirdColumn": "" } ]
如果后续要新增行,直接在数组中追加结构相同的对象即可:
[ { "firstColumn": "行1列1", "secondColumn": "行1列2", "thirdColumn": "行1列3" }, { "firstColumn": "行2列1", "secondColumn": "行2列2", "thirdColumn": "行2列3" } ]
2. 简化转换代码
# 直接传入原生Python对象,不需要转JSON字符串 htmlTable = json2html.convert(json = correct_table_json)
转换效果
调整后生成的HTML为单个完整表格,符合预期:
<table border="1"> <tr> <th>firstColumn</th> <th>secondColumn</th> <th>thirdColumn</th> </tr> <tr> <td></td> <td></td> <td></td> </tr> </table>
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

