如何将Python生成的JSON数据在HTML中渲染为表格?已尝试方案未成功
用jQuery加载本地JSON并渲染为表格的完整解决方案
嘿,我明白你现在的困境——明明看了不少方案,但还是没法把生成的JSON数据在HTML里展示出来。别着急,咱们从你的代码细节到完整实现一步步理清楚:
首先,先修正你Python脚本里的两个小问题(这些小错误可能会导致后续数据读取异常):
- 你代码里写的键是
"title",但生成的JSON里却是"name",这明显是笔误,得统一成同一个键名; open(data.json, 'w)这里少了一个单引号,是语法错误,得补上。
修正后的Python代码片段:
jsonFile = {"name": bookTitle, "author": author} # 和生成的JSON键名统一为name jsonArray.append(jsonFile) with open('data.json', 'w') as file: # 补全引号,修正语法错误 json.dump(jsonArray, file, indent=4) # 加上indent让JSON格式更易读,方便调试
接下来是HTML部分的核心实现,咱们用jQuery的$.getJSON()方法读取本地JSON,然后动态生成表格:
<head> <script src="jquery-3.3.1.min.js"></script> <style> /* 可选:给表格加基础样式,让展示更美观 */ table { border-collapse: collapse; width: 80%; margin: 20px auto; } th, td { border: 1px solid #ddd; padding: 8px; text-align: left; } th { background-color: #f2f2f2; } </style> </head> <body> <!-- 用来放表格的容器 --> <div id="table-container"></div> <script> $(document).ready(function() { // 加载同目录下的data.json文件 $.getJSON('data.json', function(data) { // 先判断有没有数据 if (data.length > 0) { // 开始构建表格结构 let tableContent = '<table><thead><tr><th>书名</th><th>作者</th></tr></thead><tbody>'; // 遍历JSON数组里的每一条数据,生成表格行 $.each(data, function(index, book) { tableContent += `<tr><td>${book.name}</td><td>${book.author}</td></tr>`; }); tableContent += '</tbody></table>'; // 把生成的表格插入到容器里 $('#table-container').html(tableContent); } else { $('#table-container').html('<p>暂无书籍数据</p>'); } }) // 处理JSON加载失败的情况(比如路径错了、JSON格式坏了) .fail(function() { $('#table-container').html('<p>加载数据失败啦!请检查data.json的路径或者格式是否正确</p>'); }); }); </script> </body>
几个必须注意的点:
- 文件路径要对:确保
data.json和index.html在同一个文件夹里,如果不在,要调整$.getJSON()里的路径(比如./data/data.json); - 本地运行的跨域坑:如果直接双击打开HTML文件(用file://协议),很多浏览器会禁止加载本地JSON,这时候可以用Python搭个简易本地服务器:
# 打开命令行,进入你的文件目录,运行这个命令 python -m http.server 8000 # 然后在浏览器里访问http://localhost:8000/index.html就没问题了 - JSON格式要合法:生成的
data.json必须是有效的JSON格式,比如不能有多余的逗号,字符串要用双引号,不然jQuery读不出来。
内容的提问来源于stack exchange,提问作者M.Throw
相关产品推荐
相关产品推荐

