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

如何用Python解析CSV中JSON格式列并生成新列?

从CSV的JSON格式列中提取字段的解决方案

问题说明

你的CSV数据中device和geoNetwork列存储了带转义双引号的JSON字符串,需要提取browser、browserVersion、continent等字段生成新列。以下是基于Python pandas的高效处理方案:

步骤1:安装依赖(若未安装)

pip install pandas

步骤2:代码实现

import pandas as pd
import json

# 读取CSV文件,自动处理转义双引号
df = pd.read_csv('your_data.csv')

# 解析device列的JSON,提取browser和browserVersion
device_data = df['device'].apply(json.loads)
device_df = pd.json_normalize(device_data)[['browser', 'browserVersion']]

# 解析geoNetwork列的JSON,提取continent
geo_data = df['geoNetwork'].apply(json.loads)
geo_df = pd.json_normalize(geo_data)[['continent']]

# 合并原数据与提取的新列
final_df = pd.concat([df, device_df, geo_df], axis=1)

# 查看结果
print(final_df[['date', 'browser', 'browserVersion', 'continent']])

异常处理说明

如果部分JSON格式不合法,可在apply时加入错误捕获:

def safe_json_loads(s):
    try:
        return json.loads(s)
    except json.JSONDecodeError:
        return {}

device_data = df['device'].apply(safe_json_loads)
geo_data = df['geoNetwork'].apply(safe_json_loads)

注意事项

  • 替换代码中的your_data.csv为实际文件路径
  • 若CSV中存在换行的JSON(如示例第二条数据的device字段),json.loads仍能正确解析,无需额外处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:31:04