如何用Python将含特殊分隔规则的HTML页面字符串转为DataFrame
解决引号内带空格的文本转DataFrame问题
核心方案:用shlex处理带引号的分割逻辑
你的场景核心是区分引号内的空格(作为字段内容)和引号外的空格(作为分隔符),Python的shlex模块专门处理这类shell风格的字符串分割,能完美适配需求。
完整代码实现
import requests import shlex import pandas as pd # 拉取目标页面的文本数据 data_str = requests.get("https://gladys.geog.ucl.ac.uk/bikesapi/load.php?scheme=saopaulo").text # 分割字符串:自动保留引号内的空格,仅拆分引号外的空格 split_items = shlex.split(data_str) # 按每行固定列数分组(目标数据为5列,可根据实际结构调整) row_length = 5 data_rows = [split_items[i:i+row_length] for i in range(0, len(split_items), row_length)] # 转换为DataFrame,自定义列名 df = pd.DataFrame(data_rows, columns=["ID", "时间戳", "站点名称", "可用车辆数", "可用车位"]) print(df.head())
关键细节说明
shlex.split()会自动识别"Estação Paulista"这类带空格的引号内容,将其视为单个元素,不会拆分内部空格。- 若不确定每行的列数,可先打印
split_items[:10]观察前几个元素,调整row_length的值即可。 - 即使原始文本混有换行符,
shlex.split()也会自动忽略,统一按引号外的空格完成分割。
内容的提问来源于stack exchange,提问作者barney stinson 2
相关产品推荐
相关产品推荐

