通过键从字典中提取值,字符串索引必须是整数

Extracting values from a dictionary by key, string indices must be integers

我正在尝试从 websocket-client 通过键接收到的字典中提取值,但出于某种原因,它抛出一个错误“字符串索引必须是整数”。 无论我如何尝试去做,我都会不断遇到同样的错误,除非我将它写成代码行然后它就可以工作,不幸的是那不是我所追求的...

示例:

ws = websocket.WebSocket()
ws.connect("websocket link")

info = ws.recv()
print(info["c"])

ws.close()

输出:

Traceback (most recent call last):
  File "C:\Python\project\venv\example\example.py", line 14, in <mod
ule>
    print(info["c"])
TypeError: string indices must be integers

虽然如果我使用同一本词典并突然写下来,它会起作用...

示例:

example = {"a":"hello","b":123,"c":"whatever"}
print(example["c"])

输出:

whatever

感谢任何帮助,谢谢!

解决方案

首先你必须在收到字典 json 对象时导入 websocket 和 json 模块,然后你必须加载那个 json 对象。

import websocket
import json

ws = websocket.WebSocket()
ws.connect("websocket link")

info = json.loads(ws.recv())
print(info["c"])

ws.close()

您从网络套接字收到的字典可能是一个 json 对象:

import websocket
import json

ws = websocket.WebSocket()
ws.connect("websocket link")

info = json.loads(ws.recv())
print(info["c"])

ws.close()

首先你必须在收到字典 json 对象时导入 websocket 和 json 模块 然后你必须加载 json 个对象。

import websocket
import json

然后加载

info = json.loads(ws.recv())