gpt4 book ai didi

python - 从 for 循环创建 json 对象数组

转载 作者:太空狗 更新时间:2023-10-29 21:21:48 24 4
gpt4 key购买 nike

我试图从 html 中提取值,然后将它们转换为 json 数组,到目前为止我已经能够得到我想要的,但只能作为单独的字符串:

我做了两个 for 循环:

for line in games_html.findAll('div', class_="product_score"):
score= ("{'Score': %s}" % line.getText(strip=True))
print score

for line in games_html.findAll('a'):
title= ("{'Title': '%s'}" % line.getText(strip=True))
print title

产生这两个输出:

{'Title': 'Uncanny Valley'}
{'Title': 'Subject 13'}
{'Title': '2Dark'}
{'Title': 'Lethal VR'}
{'Title': 'Earthlock: Festival of Magic'}
{'Title': 'Knee Deep'}
{'Title': 'VR Ping Pong'}

{'Score': 73}
{'Score': 73}
{'Score': 72}
{'Score': 72}
{'Score': 72}
{'Score': 71}
{'Score': 71}

(它们更长,但您可以通过这个了解...)

我如何使用 python 从这些中创建一个 json 数组,如下所示:

[{'Title': 'Uncanny Valley', 'Score': 73}, {....}]

之后我将使用生成的数组做其他事情......

我是否需要将循环中的项目存储到列表中,然后合并它们?您能否根据我的情况举例说明?

非常感谢您的帮助,这对我来说是一次非常酷的学习体验,因为我到目前为止只使用过 bash。 Python 看起来更性感。

最佳答案

您需要为分数和标题维护两个列表,并将所有数据附加到这些列表,而不是打印,然后压缩这些列表以及列表理解以获得所需的输出:

import json
scores, titles = [], []
for line in games_html.findAll('div', class_="product_score"):
scores.append(line.getText(strip=True))

for line in games_html.findAll('a'):
titles.append(line.getText(strip=True))

score_titles = [{"Title": t, "Score": s} for t, s in zip(titles, scores)]
print score_titles
# Printing in JSON format
print json.dumps(score_titles)

关于python - 从 for 循环创建 json 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com