<p>如果我理解你在这里想做什么,看起来你想更新一个或两个网址,一次一个。在</p>
<p>你能做的就是检查每个截图项目,一次一个,要么更新要么停止。这更容易,而且如果你想更新所有的文件。这也意味着我们不必预先询问要做多少(当我们没有更多的东西时,我们就停下来)。在</p>
<pre><code>import json
# Load the data
file_name = 'path/to/json/file'
with open(file_name) as fh:
full_data = json.load(fh)
# Dig into the data to find the screenshots
screen_shots = full_data['tabs'][0]['views'][1]['screenshots']
# Loop over each screen shot, updating each one
for number, screen_shot in enumerate(screen_shots):
print("Screenshot", number)
print('\tCurrent data:', screen_shot)
new_url = input(
"\tPlease enter new URL (leave empty and press return to stop): "
).strip()
if new_url:
# Updating the data here will also update the 'full_data' object
# as we are just referencing a part of it, not making copies
screen_shot.update({"url": new_url, "fullSizeURL": new_url})
else:
print("\tAll done!")
break
# Remove all entries which we did not update
screen_shots = screen_shots[:number]
# Save the data
with open(file_name, 'w') as fh:
json.dump(full_data, fh, indent=4)
</code></pre>
<p>您可能还需要研究从函数返回结果,而不是使用全局变量,因为这会很快与更大的脚本混淆。在</p>