如何将转义JSON格式技能数据转换为Pandas DataFrame列?
解决转义JSON字符串转Pandas DataFrame的问题
嘿,我之前也碰到过类似的转义JSON转DataFrame的麻烦,给你一套亲测有效的解决方案,一步步来:
核心思路
转义的JSON字符串本质是被转义包裹的合法JSON,我们需要先把每条转义字符串解析成Python字典,再把字典列表直接喂给Pandas生成DataFrame。
具体步骤
1. 导入依赖库
首先确保你安装了pandas(json是Python标准库,无需额外安装):
import json import pandas as pd
2. 处理示例输入
假设你的4条转义JSON记录是这样的(如果是从日志/API获取的带\转义符的字符串,比如"{\"Paradigms\":...}",json.loads也能自动处理):
# 示例转义JSON记录列表 escaped_json_records = [ '{"Paradigms": "Object-Oriented", "Platforms": "Windows, Linux", "Storage": "SQLite", "Languages": "Python"}', '{"Paradigms": "Functional", "Platforms": "macOS, Cloud", "Storage": "PostgreSQL", "Languages": "Scala"}', '{"Paradigms": "Procedural", "Platforms": "Linux", "Storage": "MySQL", "Languages": "C"}', '{"Paradigms": "Declarative", "Platforms": "Cloud", "Storage": "MongoDB", "Languages": "JavaScript"}' ]
3. 解析转义JSON并生成DataFrame
用列表推导式批量解析所有记录,再直接生成DataFrame:
# 把每条转义JSON解析为Python字典 parsed_records = [json.loads(record) for record in escaped_json_records] # 转换为Pandas DataFrame skills_df = pd.DataFrame(parsed_records)
4. 预期输出
生成的DataFrame会自动把Paradigms、Platforms等键作为列,结果如下:
| Paradigms | Platforms | Storage | Languages |
|---|---|---|---|
| Object-Oriented | Windows, Linux | SQLite | Python |
| Functional | macOS, Cloud | PostgreSQL | Scala |
| Procedural | Linux | MySQL | C |
| Declarative | Cloud | MongoDB | JavaScript |
处理特殊情况
如果部分记录存在缺失键(比如某条没有Storage字段),可以用fillna填充缺失值:
# 将缺失值填充为空字符串 skills_df = pd.DataFrame(parsed_records).fillna('')
如果你的转义JSON是从文本文件逐行读取的,代码可以改成这样:
# 从文件读取每行的转义JSON记录(跳过空行) with open('skills_data.txt', 'r', encoding='utf-8') as f: escaped_json_records = [line.strip() for line in f if line.strip()] parsed_records = [json.loads(record) for record in escaped_json_records] skills_df = pd.DataFrame(parsed_records)
内容的提问来源于stack exchange,提问作者Erin
相关产品推荐
相关产品推荐

