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

如何将requests获取的制表符分隔文本转为格式化pandas DataFrame

将字节型制表符分隔文本转换为规范的Pandas DataFrame

你已经通过requests获取到了字节格式的制表符分隔数据,接下来可以通过以下步骤将其转换为格式规范的Pandas DataFrame:

步骤1:解码字节内容为字符串

首先把返回的bytes类型数据解码成UTF-8编码的字符串,这是后续处理的基础:

import requests
import pandas as pd
import csv
from io import StringIO

test_URL = "https://www.bis.doc.gov/dpl/dpl.txt"

def get_data(link):
    hdr = {'user-agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Mobile Safari/537.36'}
    req = requests.get(link, headers=hdr)
    # 解码字节内容为字符串
    content = req.content.decode('utf-8')
    return content

data_str = get_data(test_URL)

步骤2:用Pandas读取并解析文本

由于数据是制表符分隔且每个字段都用双引号包裹,直接使用pd.read_csv并指定合适的参数即可正确解析:

df = pd.read_csv(
    StringIO(data_str),
    sep='\t',  # 指定分隔符为制表符
    quoting=csv.QUOTE_ALL,  # 识别所有用双引号包裹的字段
    skipinitialspace=True,  # 去掉字段开头的多余空格(比如示例中" I. ASH"的前置空格)
    parse_dates=['Effective_Date', 'Expiration_Date', 'Last_Update']  # 自动解析日期列
)

步骤3:验证结果

执行完上述代码后,你可以通过以下命令查看DataFrame的结构和前几行数据,确认格式是否规范:

# 查看数据结构
print(df.info())

# 查看前5行数据
print(df.head())

关键参数说明

  • sep='\t': 明确告诉Pandas数据是制表符分隔,避免默认逗号分隔导致的解析错误
  • quoting=csv.QUOTE_ALL: 确保带双引号的字段(即使包含逗号或空格)能被正确识别为单个字段
  • skipinitialspace=True: 消除字段值开头的多余空格,让数据更整洁
  • parse_dates: 自动将日期字符串转换为Pandas的datetime类型,方便后续时间相关分析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:53:14