gpt4 book ai didi

Python 从 API 请求流数据

转载 作者:行者123 更新时间:2023-12-03 16:38:25 25 4
gpt4 key购买 nike

用例:我正在尝试连接到流 API,摄取这些事件,过滤它们并保存相关的事件。

问题:我的代码运行良好,直到大约 1100 次响应。在这一点之后,代码不会崩溃,但似乎停止从流中提取更多数据。我猜这是某种缓冲区问题,但老实说,流媒体对我来说是新的,我不知道是什么导致了这个问题。

代码

import requests
def stream():
s = requests.Session()
r = s.get(url, headers=headers, stream=True)
for line in r.iter_lines():
if line:
print(line)

我也在没有 session 对象的情况下尝试过这个,我得到了相同的结果。

是否有我忽略的参数或我不知道的概念?我已经搜索了文档/互联网,但没有任何内容让我感到意外。

任何帮助深表感谢。

编辑
我认为一切看起来都正确,我认为流在初始连接时只会生成大量事件,然后它们会减慢速度。然而,现在的问题是,在连接几分钟后,我收到此错误:
Traceback (most recent call last):
File "C:\Users\joe\PycharmProjects\proj\venv\lib\site-packages\urllib3\response.py", line 572, in _update_chunk_length
self.chunk_left = int(line, 16)
ValueError: invalid literal for int() with base 16: b''

最佳答案

关注 "Body Content Workflow" ( requests 库)流数据的部分指南。

示例方法:

import requests

def get_stream(url):
s = requests.Session()

with s.get(url, headers=None, stream=True) as resp:
for line in resp.iter_lines():
if line:
print(line)

url = 'https://jsonplaceholder.typicode.com/posts/1'
get_stream(url)

输出:
b'{'
b' "userId": 1,'
b' "id": 1,'
b' "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",'
b' "body": "quia et suscipit\\nsuscipit recusandae consequuntur expedita et cum\\nreprehenderit molestiae ut ut quas totam\\nnostrum rerum est autem sunt rem eveniet architecto"'
b'}'

关于Python 从 API 请求流数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57497833/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com