[英]json2html, python: json data not converted to html
我正在嘗試使用json2html將json數據格式化為html。 json數據如下所示:
json_obj = [{"Agent Status": "status1", "Last backup": "", "hostId": 1234567, "hostfqdn": "test1.example.com", "username": "user1"}, {"Agent Status": "status2", "Last backup": "", "hostId": 2345678, "hostfqdn": "test2.example.com", "username": "user2"}]
正如文章“ json2html不是有效的json列表python ”中已經報道的那樣,為了使代碼有效,json參數必須是字典而不是列表,所以我這樣稱呼它:
json_obj_in_html = json2html.convert(json = { "data" : json_obj })
但是,它不會將json數據僅格式化為字典{“ data”:json_obj}的第一級:
print json_obj_in_html
<table border="1"><tr><th>data</th><td>[{"Agent Status": "status1", "Last backup": "", "hostId": 1234567, "hostfqdn": "test1.example.com", "username": "user1"}, {"Agent Status": "status2", "Last backup": "", "hostId": 2345678, "hostfqdn": "test2.example.com", "username": "user2"}]</td></tr></table>
請注意, 在線轉換工具提供了正確的輸出: http : //json2html.varunmalhotra.xyz/
<table border="1"><tr><th>data</th><td><ul><table border="1"><tr><th>Agent Status</th><td>status1</td></tr><tr><th>Last backup</th><td></td></tr><tr><th>hostId</th><td>1234567</td></tr><tr><th>hostfqdn</th><td>test1.example.com</td></tr><tr><th>username</th><td>user1</td></tr></table><table border="1"><tr><th>Agent Status</th><td>status2</td></tr><tr><th>Last backup</th><td></td></tr><tr><th>hostId</th><td>2345678</td></tr><tr><th>hostfqdn</th><td>test2.example.com</td></tr><tr><th>username</th><td>user2</td></tr></table></ul></td></tr></table>
任何幫助將非常歡迎。
確保json_obj
是對象數組,而不是字符串( str
)。
我將您的代碼放入完整的示例中:
from json2html import *
json_obj = [{"Agent Status": "status1", "Last backup": "", "hostId": 1234567, "hostfqdn": "test1.example.com", "username": "user1"}, {"Agent Status": "status2", "Last backup": "", "hostId": 2345678, "hostfqdn": "test2.example.com", "username": "user2"}]
json_obj_in_html = json2html.convert(json = { "data" : json_obj })
print json_obj_in_html
使用Python 2.7和json2html 1.0.1會導致以下結果:
如果您收到類似的結果
<table border="1"><tr><th>data</th><td>[{"Agent Status": "sta...
json_obj
很可能是str
而不是對象數組。 您可以通過插入類似
print type(json_obj)
在jsonhtml.convert
之前。 我假設type(json_obj)
在您的情況下返回<type 'str'>
type(json_obj)
<type 'str'>
,這就是為什么JSON之類的字符串出現在您的html中的原因。 為了正確使用它,您必須以這種方式修改代碼,使type(json_obj)
返回<type 'list'>
type(json_obj)
<type 'list'>
。
我的詞典列表anomaly_list
已經是json格式,因此嘗試使用json.dumps(anomaly_list, sort_keys=True)
進行轉換已變成字符串,這不是我想要的。 我通過保留字典列表來解決此問題,此代碼現在可以正常工作:
json_obj_in_html = ''
for j in anomalies_list:
json_obj_in_html += json2html.convert(json = j)
它輸出我想要的。
@ gus42:謝謝,您的反饋使我明白了真正的鉛在哪里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.