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

调用json()解析Web文本文件触发JSONDecodeError,求解决方案

解决JSONDecodeError并提取目标文件中的IP地址

错误原因

你触发JSONDecodeError的核心问题是:目标URL返回的是纯文本格式的黑名单数据,根本不是JSON格式的数据,强行调用.json()方法去解析纯文本,自然会报错。

修正后的代码

# 从https://isc.sans.edu/block.txt提取文本并提取每行首个IP地址
import requests

url = "https://isc.sans.edu/block.txt"

# 获取纯文本内容,不要用.json()
webtext = requests.get(url).text

# 用with语句写入文件,自动处理文件关闭,更安全
with open('webtextfile.txt', 'w', encoding='utf-8') as webtextfile:
    webtextfile.write(webtext)

# 读取文件并提取每行首个IP地址
ip_list = []
with open('webtextfile.txt', 'r', encoding='utf-8') as webtextfile:
    for line in webtextfile:
        line = line.strip()
        # 跳过空行和注释行(以#开头的行)
        if not line or line.startswith('#'):
            continue
        # 按空格分割,取第一个元素就是IP地址
        ip = line.split()[0]
        ip_list.append(ip)

# 打印提取到的IP列表
print(ip_list)

关键说明

  • 用.text替代.json():直接获取网页返回的纯文本内容,适合处理txt这类非JSON格式的资源。
  • 使用with语句操作文件:无需手动调用close(),避免资源泄漏。
  • 过滤无效行:目标文件里有注释行(#开头)和空行,需要跳过这些行再提取IP。
  • 提取IP:每行内容以空格分隔,第一个元素就是需要的IP地址,用split()[0]即可获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:05:32