在 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,可以从内存中加载模块吗?

当有同名的包时,如何在 Python 3 中加载模块?

通过 Chrome 中的 Fetch API 在 D3 v5 中加载 JSON?

discord.py bot 不会在嵌入中加载视频