gpt4 book ai didi

if 语句的 Python 问题

转载 作者:太空宇宙 更新时间:2023-11-04 10:32:38 25 4
gpt4 key购买 nike

我有一个包含文章标题和段落的大量 JSON 文件。我想要做的是删除任何少于 5 个段落的条目(标题和段落),然后将其保存到一个新的 JSON 文件中。我写了下面的代码,每次执行它时,我都会得到 4 个 OK(其他分支正在执行),然后它停止。我尝试打印 len(docs[x]),我得到了每个标题的段落数,我无法弄清楚我做错了什么,它只执行了 4 次。我怀疑我的 if 语句有问题,但我无法理解。谢谢!

final = []
docs = []

with open("/Users/jorjis/Desktop/Merge_stuff/merged.json") as j:
json_data = j.read()
data = json.loads(json_data)

for x in range(0, len(data)):
final.append(data[x]['title'])
docs.append(data[x]['paragraphs'])
if len(docs[x]) < 5:
del final[x]
del docs[x]
else:
print "OK"

with open('over_five.json', 'w') as outfile:
json.dump(data, outfile)

最佳答案

更改您的逻辑并仅在满足要求时才追加,您遇到问题是因为您正在更改您正在访问的列表,添加数据然后删除它是没有意义的:

for x in data:
if len(x['paragraphs']) > 4: # if length is greater than 4
final.append(x['title']) # add the items
docs.append(x['paragraphs'])

您只需遍历数据并访问每个元素,无需 xrange

您可以只使用 data = json.loads(j)

关于if 语句的 Python 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25453712/

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