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

Python解析Socket接收的JSON数据遇JSONDecodeError求助

解决JSONDecodeError:处理带前缀的Socket数据

问题根源

你收到的字符串包含非JSON格式的前缀device json string:,而json.loads()仅能解析纯JSON结构的内容,这直接导致了解析失败。

解决方案

方法1:单次分割提取JSON部分

通过字符串分割只剥离前缀一次,避免误切割JSON内容里的相似字符串:

import json

data_str = data.decode()
# 按前缀分割,取分割后的最后一段(即JSON部分)
json_content = data_str.split("device json string:", 1)[-1].strip()
js = json.loads(json_content)

strip()用于去除JSON内容前后可能存在的空格、换行符等干扰字符。

方法2:固定前缀长度切片

如果前缀内容固定不变,可直接通过索引截取后续内容:

import json

prefix = "device json string:"
data_str = data.decode()
# 跳过前缀长度的字符,截取剩余部分
json_content = data_str[len(prefix):].strip()
js = json.loads(json_content)

验证步骤

解析前可以先打印json_content,确认输出是标准的JSON格式字符串后,再执行json.loads()操作,确保解析成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 18:01:16