如何使用Python拆分提取JSON字符串中以竖线分隔的多条数据
问题解决方法
报错原因
你遇到的JSONDecodeError是因为输入内容不是标准单个JSON结构:包含换行分隔的多行内容,且第二行用竖线|拼接了两个JSON对象,无法直接用json.loads整体解析。
修改后可运行代码
import json # 这里的credit_note就是你原始的输入字符串 a = credit_note # 先按换行拆分每一行 for line in a.splitlines(): # 每行再按竖线|拆分,得到单个合法JSON字符串 for json_str in line.split('|'): # 过滤空内容,避免分隔符前后/行首尾有空白导致解析报错 json_str = json_str.strip() if not json_str: continue # 逐个解析JSON data = json.loads(json_str) # 输出指定字段 print(data["creditNoteId"], data["creditNoteUrl"])
运行输出结果
BSA11130181-S7 www.twitir.com BSA11130181-S8 www.googol.com BSA11130181-S9 www.fesbuuk.com
原代码问题说明
- 没有拆分换行和竖线分隔的多个JSON片段,直接把混杂的整段内容传给
json.loads触发格式错误 - 原循环逻辑有误,遍历的时候调用了外层的
y对象而不是遍历出来的单个元素,会重复打印同一个值
内容的提问来源于stack exchange,提问作者DM Equinox
相关产品推荐
相关产品推荐

