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

Python连接外部WebSocket报错:TypeError: an integer is required (got type str)

解决WebSocket发送消息时的TypeError: an integer is required错误

你遇到的错误是因为websocket库的send()方法仅支持字符串(或字节)类型的数据,但你直接传入了Python字典。浏览器发送WebSocket消息时,实际是把JSON对象序列化为字符串传输的,所以你需要在代码里做同样的转换。

修正方法很简单:

  • 导入json模块
  • 使用json.dumps()将字典格式的消息转换成JSON字符串后再发送

修正后的完整代码:

from websocket import create_connection
import json

link = "wss://sbapi.sbtech.com/bet777/sportscontent/sportsbook/v1/Websocket?jwt=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjA4MTU3OTUsImlzcyI6ImFnZW50X0JldDc3NyIsIlNpdGVJZCI6NzIsIklzQW5vbnltb3VzIjp0cnVlLCJTZXNzaW9uSWQiOiI4NmJjNmMzOS0wMmNkLTQyZDctOTg5OC03MjBhZGFhYmM5OGEiLCJuYmYiOjE2NjA4MDg1OTUsImlhdCI6MTY2MDgwODU5NX0.f9T1bPsuMNYETXUhy-K9rmdmdQ_p2lQIvJmFGsveZ2H2DeA6_-tEE_83oFgDqVihuFHBdTe69rXir2rgoKjWcJxMR49cD7fixpWhJ0s4JFfc2VQIscNaVzGO-q7EAPZlWpYJe91WOXM-kcaPPtRYpcZkjcy7_D6vuEZKdlRGD5kA0TKt7DGSsA1dNgdZ1Hvw0JwDMxcNKJ9LFnJjz4v2mFMwozVL79T6mQSTQwR4HFiid4vH6STIzZ_dejxp86PDe68mj_e7Vko4eGX3vl9ihYyqUXeVePI0Yqac9fysiHCrrYJ2Cs4Z4_fCi1CrW3Ft2VIXQkJ_6Ls8vD9crmtreA&locale=nl"

message_to_send = {"jsonrpc": "2.0",
                   "params": {"eventState": "Mixed", "eventTypes": ["Fixture", "AggregateFixture"], "ids": ["40815"],
                              "regionIds": ["20"], "pagination": {"top": 100, "skip": 0}, "marketTypeRequests": [
                           {"sportIds": 1,
                            "marketTypeIds": ["1_39", "2_39", "3_39", "1_169", "1707", "1_0", "2_0", "3_0"],
                            "statement": "Include"}]}, "method": "GetEventsByLeagueId",
                   "meta": {"blockId": "eventsWrapper-Center_LeagueViewResponsiveBlock_17829"},
                   "id": "e0621fd8-e7b0-4458-8aaf-d4a83b6e90a9"}

ws = create_connection(link)
# 将字典转为JSON字符串后发送
ws.send(json.dumps(message_to_send))
result = ws.recv()
# 如果需要解析返回的结果,可以用json.loads()转换为字典
# parsed_result = json.loads(result)
# print(parsed_result)
print(result)
ws.close()

如果后续需要处理服务器返回的JSON响应,可通过json.loads()把接收到的字符串转回Python字典,方便提取和使用数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:09:09