You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:如何将网页抓取数据转换为固定规模的二维数组?

解决方案

步骤说明

  1. 先处理原始文本,按行分割并过滤空行,得到干净的条目列表
  2. 将每4条条目(对应单个数据项的NAME/DATE/ITEMS/PRICE)组成基础数据组
  3. 再将这些基础数据组按每3个一组打包,生成目标二维数组

代码实现

# 假设原始文本存储在value变量中
value = """
NAME[1]
DATE[1]
ITEMS[1]
PRICE[1]
NAME[2]
DATE[2]
ITEMS[2]
PRICE[2]
NAME[3]
DATE[3]
ITEMS[3]
PRICE[3]
NAME[4]
DATE[4]
ITEMS[4]
PRICE[4]
NAME[5]
DATE[5]
ITEMS[5]
PRICE[5]
NAME[6]
DATE[6]
ITEMS[6]
PRICE[6]
"""

# 1. 分割行并过滤空行
lines = [line.strip() for line in value.split('\n') if line.strip()]

# 2. 生成单个数据项的分组(每组4条)
item_groups = [lines[i:i+4] for i in range(0, len(lines), 4)]

# 3. 按每3个数据项组打包成二维数组
target_array = [item_groups[i:i+3] for i in range(0, len(item_groups), 3)]

# 格式化输出为你期望的样式
print('[')
for idx, sub_arr in enumerate(target_array):
    print('  [')
    for group in sub_arr:
        print('    [')
        print(f'      {group[0]}')
        print(f'      {group[1]}')
        print(f'      {group[2]}')
        print(f'      {group[3]}')
        print('    ]')
    print('  ]' + (',' if idx < len(target_array)-1 else ''))
print(']')

关键说明

  • 你之前使用split(',')是错误的,原始数据按换行分隔,应该用split('\n')处理
  • 两次用列表推导式+步长分割的方式,是Python处理这类分组需求最简洁高效的写法,时间复杂度为O(n),无需额外循环判断

内容的提问来源于stack exchange,提问作者Brenner Haverlock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:05:21