【问题标题】:strings in python requests "i want to exract the steps from json"python请求中的字符串“我想从json中提取步骤”
【发布时间】:2021-04-16 13:33:33
【问题描述】:

这是我从网站获得的 JSON:

[
{
  "id":"8-23p-0",
  "step":"",
  "html":"<p>1</p>",
  "link":"",
  "commentCount":0
},
{
  "id":"8-23p-1",
  "step":"1",
  "html":"<p>2</p>",
  "link":"",
  "commentCount":0
},
{
  "id":"8-23p-2",
  "step":"2",
  "html":"<p>3</p>",
  "link":"",
  "commentCount":0
},
{
  "id":"8-23p-3",
  "step":"3",
  "html":"<p>4</p>",
  "link":"",
  "commentCount":0
},
{
  "id":"8-23p-4",
  "step":"4",
  "html":"<p>5</p>",
  "link":"",
  "commentCount":0
}

]

我正在编写此代码以从中获取所有 HTML

html_values = []
  for i in answer2:
html_values.append(i.get("html"))

通过上面的代码,我得到了所有列表类型的 html

但我想为每个步骤添加一个标题,例如:

预期输出:

<h>step 1</h>  
<p>1</p>
<h>step 2</h> 
<p>2</p>
<h>step 3</h> 
<p>3</p>
<h>step 4</h> 
<p>4</p>
<h>step 5</h> 
<p>5</p>

我想得到上面的输出,请帮助我,谢谢

【问题讨论】:

  • 为什么你的 p 值都是 5?

标签: python beautifulsoup python-requests


【解决方案1】:

假设您想使用 JSON 中的 step 值,您可以使用带有 f-string 的列表推导来格式化它:

html_values = [f'<h>step {a["step"]}</h>{a["html"]}' for a in answer2]

输出:

[
 '<h>step </h><p>1</p>',
 '<h>step 1</h><p>2</p>',
 '<h>step 2</h><p>3</p>',
 '<h>step 3</h><p>4</p>',
 '<h>step 4</h><p>5</p>'
]

如果您希望步骤编号反映列表中的条目,那么您可以使用enumerate 生成步骤编号,例如

html_values = [f'<h>step {i}</h>{a["html"]}' for i, a in enumerate(answer2, 1)]

输出:

[
 '<h>step 1</h><p>1</p>',
 '<h>step 2</h><p>2</p>',
 '<h>step 3</h><p>3</p>',
 '<h>step 4</h><p>4</p>',
 '<h>step 5</h><p>5</p>'
]

在这两种情况下,您都可以使用 join 将整个输出作为字符串获取,例如

print(''.join(html_values))

【讨论】:

  • 如何将所有输出步骤发送到 HTML 代码,因为它再次给了我想要将此列表解析为 HTML 代码的列表
  • @BalajiKotni 看到我回答的最后一行print(''.join(html_values))
  • 嗨,先生,您能帮我解答这个问题吗,请stackoverflow.com/questions/67230015/…
  • @BalajiKotni 抱歉 - 我对不和谐一无所知。
【解决方案2】:

您可以使用上面 json 中获得的步骤值来准备步骤标题。

查看以下代码:

html_values = []
for i in answer2:
    step = i.get('step')
    step = "<h>step %s</h>" % step
    html_values.append(step)
    html_values.append(i.get("html"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    相关资源
    最近更新 更多