在 Python 中加载 JSON 代码的问题
Posted
技术标签:
【中文标题】在 Python 中加载 JSON 代码的问题【英文标题】:Problems loading JSON code in Python 【发布时间】:2010-07-26 17:46:17 【问题描述】:我一直想弄清楚如何在 Python 中加载 JSON 对象。
我可以向服务器发送一个 JSON 字符串,但是它失败了。
这是我使用 javascript 通过 websocket 发送的内容:
ws.send('"test":"test"');
服务器收到它没有问题,但无法验证它:
"test":"test"
This is not a JSON object!
来自这段代码:
try:
data = data[:-1]
json.loads(data)
except ValueError:
print 'This is not a JSON object!'
else:
print ('JSON found!')
data = data[:-1]
用于剥离通过 websocket 发送的分隔符。
【问题讨论】:
您能否提供有关该错误的更多详细信息?像 data.__repr__() 和错误一样,被捕获。 我现在没有关于 __repr__(),这太神奇了:'\x00"test":"test"'
问题就在那里,显然也有一个起始字符,但你在控制台中看不到它。删除它修复它。不过,你能告诉我如何得到错误吗?我对 python 的错误处理方式很陌生,我似乎无法按原样打印出 ValueError。
我认为是“除了 ValueError,e:”。然后就可以“打印e”了。
\x00 可能是 websocket 协议框架分隔符的一部分。
【参考方案1】:
import traceback
try:
d = json.loads(data[data.index(''):-1])
except:
traceback.print_exc()
else:
print(d)
这样,只有数据字符串的字典部分被解析为 json.loads()。
【讨论】:
以上是关于在 Python 中加载 JSON 代码的问题的主要内容,如果未能解决你的问题,请参考以下文章
在 python 中加载 JSON 作为实际对象,而不是 dict [重复]
在 Python 3.4 中加载和读取具有多个 JSON 对象的 JSON 文件
PyImport_ImportModule,可以从内存中加载模块吗?