如何将指定字符串解析为可读性强的DataFrame
解决方法
1. 提取并解析JSON内容
首先从原始字符串中剥离出JSON部分,再将其解析为Python字典:
import json import pandas as pd original_str = 'Added term: {"guid":"4b87ce3c","qualifiedName":"Indenture Code@Enterprise","name":"Indenture Code","glossaryTermHeader":{"termGuid":"4b87ce3c","qualifiedName":"Indenture Code@Enterprise"}}' # 提取纯JSON片段 json_content = original_str.split('Added term: ')[1] # 解析为字典 term_dict = json.loads(json_content)
2. 手动构造DataFrame行数据
由于字典不允许重复键,我们直接提取所需字段构造行数据,再指定列名生成DataFrame:
# 提取所有需要的字段值 row_data = [ term_dict['guid'], term_dict['qualifiedName'], term_dict['name'], term_dict['glossaryTermHeader']['termGuid'], term_dict['glossaryTermHeader']['qualifiedName'] ] # 创建目标结构的DataFrame(支持重复列名) df = pd.DataFrame([row_data], columns=['guid', 'qualifiedName', 'name', 'termGuid', 'qualifiedName'])
3. 输出结果
运行上述代码后,生成的DataFrame完全匹配你需要的结构:
| guid | qualifiedName | name | termGuid | qualifiedName |
|---|---|---|---|---|
| 4b87ce3c | Indenture Code@Enterprise | Indenture Code | 4b87ce3c | Indenture Code@Enterprise |
可选优化(避免重复列名歧义)
如果担心重复列名影响后续数据操作,可给内层的qualifiedName添加标识后缀:
df = pd.DataFrame([row_data], columns=['guid', 'qualifiedName_outer', 'name', 'termGuid', 'qualifiedName_inner'])
内容的提问来源于stack exchange,提问作者dhughes20
相关产品推荐
相关产品推荐

