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

Python中print分隔符未生效及生成JSON数组的需求

问题解决方法

1. 输出带正确逗号分隔的结果

原代码里print的sep参数无效,因为它是用来分隔print函数多个参数的,你每次只传了一个值,自然不会生效。正确做法是先把所有数据收集到列表,再统一处理:

import json
from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text,'lxml')
elements = soup.select('div.button.m')
data_items = []
for item in elements:
    # 先把data属性的字符串转成字典,避免后续格式出错
    data = json.loads(item.attrs['data'])
    data_items.append(data)

# 把每个字典转成JSON字符串后用逗号连接输出
print(', '.join(json.dumps(item) for item in data_items))

2. 直接生成可导入的JSON数组结构

如果要输出{"list": [...]}这种标准JSON格式,直接构造目标结构后转成JSON字符串即可:

import json
from bs4 import BeautifulSoup

soup = BeautifulSoup(response.text,'lxml')
elements = soup.select('div.button.m')
data_list = []
for item in elements:
    data = json.loads(item.attrs['data'])
    data_list.append(data)

# 构造需要的JSON结构
final_result = {"list": data_list}
# 输出格式化后的JSON(要紧凑格式就去掉indent参数)
print(json.dumps(final_result, indent=2))

补充提示

  • 必须把data属性的字符串转成字典再处理,否则原字符串的特殊字符可能导致JSON解析失败
  • 别用循环里加end=','的方式,会留下末尾多余逗号,无法直接导入JSON

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 22:35:18