Python实现按JSON条目pages值生成带独立页码的url列表
实现逻辑说明
你现有的双层循环结构已经适配了核心需求,不需要额外引入复杂方法,只要对内层循环的计数范围做个小调整,就能实现每个URL独立从1开始的页码:
- 你之前写
range(x['pages'])生成的计数序列是从0开始的,比如pages=3时会生成0、1、2三个值,只要把起始值设为1、终止值设为pages+1,拿到的循环值就是天然匹配要求的连续页码 - 不需要用全局
enumerate:全局编号会跨不同的URL对象累计数字,自然做不到每个URL下页码重新从1计数;把页码生成的范围锁在单个对象的内层循环里,就能自动实现每个URL独立的页码序列
小提示:不要把变量名设成json,会对Python内置的json处理库造成覆盖,后续解析JSON数据时容易报错
可直接运行的完整代码
result_list = [] for item in input_json_data: current_url = item["url"] total_pages = item["pages"] # 直接遍历从1开始到total_pages的连续值,就是对应页码 for page in range(1, total_pages + 1): result_list.append( (current_url, page) )
输出效果验证
用你给出的示例JSON跑代码,result_list的最终内容为:
[ ("https://www.stackoverflow_greatquestions.com", 1), ("https://www.stackoverflow_not-so-greatquestions.com", 1), ("https://www.stackoverflow_not-so-greatquestions.com", 2), ("https://www.stackoverflow_not-so-greatquestions.com", 3) ]
如果需要拼成和示例完全一致的字符串格式,加一行列表推导做拼接即可:
formatted_output = ',\n'.join([f'"{url}", {page}' for url, page in result_list])
运行后生成的字符串和你预期的输出格式完全匹配。
内容的提问来源于stack exchange,提问作者Brian
相关产品推荐
相关产品推荐

