簡體   English   中英

json2html,python:json數據未轉換為html

[英]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.7json2html 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM