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

Python导入JSON数据时如何保留含空格的键值对属性名

解决带空格属性名的JSON数据提取问题

问题描述

从JSON文件的payload.blob.rawLines字段提取数据时,部分属性名包含空格(如Property1_word1 Property1_word2),原有代码通过split(' ')拆分后仅保留属性名的第一个单词,无法完整获取带空格的属性名。

JSON示例片段

{"payload": {"blob": {"rawLines": ["            5.00000        Property1_word1 Property1_word2                              ", ...]}}}

原有代码问题

原有代码中e.split(' ')[1]仅取拆分后的第二个元素,无法覆盖带空格的属性名:

as_dict = {e.split(' ')[0]: e.split(' ')[1] for e in trimmed}

解决方案

使用split(maxsplit=1)替代普通split(' '),该参数会限制仅拆分一次,将字符串分为数值部分和完整属性名部分:

import json
import pandas as pd

# 读取JSON文件
with open("yourJson.json", "r") as f:
    data = json.load(f)

# 提取目标数据行
to_extract = data["payload"]["blob"]["rawLines"]

# 处理每行数据:去除首尾空格后,仅拆分一次
processed_lines = []
for line in to_extract:
    stripped_line = line.strip()
    # 跳过空行(如果有的话)
    if not stripped_line:
        continue
    # 仅拆分一次,分割为数值和属性名
    value_part, property_part = stripped_line.split(maxsplit=1)
    # 合并属性名内的多余连续空格(按需保留)
    clean_property = ' '.join(property_part.split())
    processed_lines.append((value_part, clean_property))

# 转换为DataFrame
df = pd.DataFrame(processed_lines, columns=['Value', 'Property'])

关键说明

  • split(maxsplit=1):确保只在第一个空格处拆分,完整保留属性名的所有内容
  • 属性名空格处理:如果属性名内部存在多个连续空格,用' '.join(property_part.split())合并为单个空格,保证格式整洁
  • with语句读取文件:替代手动close(),更安全规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 14:43:10