Как рендерить JSON в HTML? - PullRequest
0 голосов
/ 22 марта 2019

У меня есть файл JSON:

[
{
"key1": "value1",
"key2": "value2"
},
{
"key3": "value3",
"key4": "value4"
}]

Вывод должен быть: <h1>value1</h1><p>value2</p><h1>value3</h1><p>value4</p>

Я пытаюсь так:

import json
with open('file.json') as f:
data = json.load(f)

for key in data:
    for k, v in key.items():
       print(k.replace(k, '<h1>') + v + (k.replace(k, '</h1>')))

Но это ужасно и глупо: (

Также у меня есть другой файл JSON:

[
   {
"h1": "value1",
"div": "value2"
  }
]

Вывод должен быть:

<h1>value1</h1><div>value2</div>

Мое решение:

with open('file2.json') as f:
data = json.load(f)

for key in data:
    for k, v in key.items():
        print(f"<{k}>" + v + f"</{k}>")

Это работа, можно ее улучшить?

И последний: Если у JSON есть список, каждый элемент должен иметь тег <ul>, а каждый элемент <ul> должен содержать элемент <li>:

JSON:

[
{
"h1": "value1",
"div": "value2"
},
{
"h1": "value3",
"div": "value4"
}]

Вывод должен быть: <ul><li><h1>value1</h1><div>value2</div></li><li><h1>value1</h1><div>value2</div></li></ul>

Как я могу решить эту задачу? Пожалуйста, дайте мне совет, каким образом я могу его выкопать. С Python или Django

1 Ответ

0 голосов
/ 22 марта 2019

Возможно, вам будет интересно взглянуть на шаблон Django.Использование с JSON можно найти здесь

Я не уверен, что вы можете использовать его для третьего.Но в простом Python, что-то вроде:

html = '<ul>'
for list_item in items:
    html += '<li>'
    for tag, value in list_items.items():
        html += '<{}>{}</{}>'.format(tag, value, tag)
    html += '</li>'
html += '</ul>'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...