Python Pandas:JSON转字典数据丢失及DataFrame逗号残留问题
JSON提取数据转DataFrame的逗号残留处理
问题场景
从JSON文件中提取payload.blob.rawLines字符串列表后,使用split(None, 1)转换为字典时会丢失部分键值对,改用reversed(line.split(None, 1))解决了数据丢失问题,但将字典转为DataFrame后,value列存在逗号残留,需要清理。
解决方案
方案1:生成字典时同步清理逗号
在分割键值对的阶段就去除值中的逗号,避免后续二次处理:
import json import pandas as pd # 读取并解析JSON文件 with open("f.txt", "r") as f: data = json.load(f) raw_lines = data["payload"]["blob"]["rawLines"] # 构建字典并清理值中的逗号 clean_dict = {} for line in raw_lines: stripped_line = line.strip() # 按第一个空白分割,最多分成2部分 parts = stripped_line.split(None, 1) if len(parts) == 2: # 反转后得到值和键(适配之前的reversed逻辑) raw_value, key = parts # 去除值中的所有逗号 clean_value = raw_value.replace(',', '') clean_dict[key] = clean_value # 转换为DataFrame df = pd.DataFrame(clean_dict.items(), columns=["name", "value"])
方案2:生成DataFrame后批量清理
如果已经得到带逗号的DataFrame,直接对value列做替换处理:
# 假设已生成mydataframe mydataframe["value"] = mydataframe["value"].str.replace(',', '', regex=False)
说明
逗号残留的根源是rawLines中的原始值自带逗号,上述两种方法都能彻底去除逗号,确保name和value列内容纯净。
内容的提问来源于stack exchange,提问作者Ant
相关产品推荐
相关产品推荐

