如何在Flask中将JSON字符串转换为HTML表?
我试图将json转换为html表,但出现错误UndefinedError:“unicode对象”没有属性“items”。 我从响应中得到json,并将其存储到d5中 ['{“pf”:“K”、''users:1'、''EVENTS:1}'、'{“pf”:“A”、''users:7'、''EVENTS:7}'、'{“pf”:“I”、''users:3'、''EVENTS:3}'] 下面是我的代码如何在Flask中将JSON字符串转换为HTML表?,html,json,flask,Html,Json,Flask,我试图将json转换为html表,但出现错误UndefinedError:“unicode对象”没有属性“items”。 我从响应中得到json,并将其存储到d5中 ['{“pf”:“K”、''users:1'、''EVENTS:1}'、'{“pf”:“A”、''users:7'、''EVENTS:7}'、'{“pf”:“I”、''users:3'、''EVENTS:3}'] 下面是我的代码 finalJson = json.dumps(d5) table_data = (json2ht
finalJson = json.dumps(d5)
table_data = (json2html.convert(json = finalJson))
return render_template_string('''
<table>
<tr>
<td> PF </td>
<td> users </td>
<td> events </td>
</tr>
{% for pf, users,events in table_data.items() %}
<tr>
<td>{{ pf }}</td>
<td>{{ users }}</td>
<td>{{ events }}</td>
</tr>
{% endfor %}
</table>
''', table_data=table_data)
finalJson=json.dumps(d5)
表_data=(json2html.convert(json=finalJson))
返回渲染模板字符串(“”)
PF
使用者
事件
{%用于pf、用户、表_data.items()中的事件%}
{{pf}}
{{users}}
{{events}}
{%endfor%}
'',表_数据=表_数据)
我想把json转换成html表格,比如
pf
使用者
事件
K
1.
1.
我
3.
3.
A.
7.
7.
d5='[{“pf”:“K”,“用户”:1,“事件”:1},{“pf”:“A”,“用户”:7,“事件”:7},{“pf”:“I”,“用户”:3,“事件”:3}]'
finalJson=json.loads(d5)
返回渲染模板字符串(“”)
PF
使用者
事件
{%pf、用户、事件在finalJson%}
{{pf}}
{{users}}
{{events}}
{%endfor%}
'',finalJson=finalJson)
首先,字符串d5应该具有正确的json格式。
其次,如果要将字符串转换为json,可以使用json.loads(而不是dumps)
最后一个JSON是“列表”。因此,您可以在不使用items()函数的情况下对其进行迭代。正如我在上面检查的那样,尝试以下操作
d5=['{“pf”:“K”,“用户”:1,“事件”:1},{“pf”:“A”,“用户”:7,“事件”:7},{“pf”:“I”,“用户”:3,“事件”:3}]
#将spark json数组结果转换为列表。
finalJson=json.load(“[”+d5[0]+“]))
返回渲染模板字符串(“”)
表,th,td{
边框:1px纯黑;
}
桌子{
宽度:80%;
边界塌陷:塌陷;
}
运输署{
文本对齐:居中
}
th:第一个孩子,td:第一个孩子{
文本对齐:左对齐
}
th:最后一个孩子,td:最后一个孩子{
文本对齐:右对齐
}
PF
使用者
事件
{表_data%}中的行的%
{{row['pf']}
{{row['users']}
{{row['events']}
{%endfor%}
'',表_data=finalJson)
您也可以根据需要随意修改样式。为什么数据需要json格式?您可以将其保留为原始形式。@Epichen我从响应中获得json,我想使用它响应是['{“pf”:“K”:“用户”:1',““events”:1}',“{“pf”:“A”,““用户”:7',““events”:7}',“{“pf”:“I”,““用户”:3',““events”:3}]或[{“pf”:“K”:“用户”:1,“events”:1},“{“pf”:“A”,“用户”:7”,“events”:“7”,“{“pf,事实上,第一个是错误的josn格式,如果你把它贴到实际上是spark dataframe的输出,我做了一些调查,我认为spark dataframe的输出应该是['{“pf”:“K”,“users”:1,“Events”:1},{“pf”:“A”,“users”:7,“Events”:7},{“pf”:“I”,“users”:3,“Events”:3}]我想你的json也是无效的。你注意到d5不是一个字符串吗?d5是一个数组。[xxxxxxx],你的意思是你的d5=“['{“pf”:“K”,“users”:1,“evennts”:1},{“pf”:“a”,“users”:7,“evennts”:7},{“pf”:“I”,“users”:3,“evennts”:3}]"? 目标是在调用json.loadThank之前将字符串修改为有效的json字符串,明白了吗。但仍然有一个问题。在PF列中,我得到了类似事件的行,在Users列中,我得到了PF,在events列中,我得到了用户。也许你可以提供屏幕截图?你能给我你的电子邮件id吗,我会给你发送屏幕截图我已经修改了代码,main在{%for row In table_data%}循环部分。此外,字段“events”的原始拼写不正确,我已将其从“events”修改为“events”。
d5='[{"pf":"K","users":1,"events":1},{"pf":"A","users":7,"events":7},{"pf":"I","users":3,"events":3}]'
finalJson = json.loads(d5)
return render_template_string('''
<table>
<tr>
<td> PF </td>
<td> users </td>
<td> events </td>
</tr>
{% for pf, users,events in finalJson %}
<tr>
<td>{{ pf }}</td>
<td>{{ users }}</td>
<td>{{ events }}</td>
</tr>
{% endfor %}
</table>
''', finalJson=finalJson)