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

解决ast.literal_eval转换Google Analytics数据集hits列字符串的语法错误

问题原因

ast.literal_eval() 仅支持解析Python原生的数据类型,你的字符串中包含了Numpy的array()结构,不属于Python原生类型,因此会触发语法错误。

方案1:报错兜底保留原字符串

如果你不需要用到array相关的数据,只需要加异常捕获逻辑即可,转换失败时直接返回原字符串:

import ast

def safe_eval(x):
    try:
        return ast.literal_eval(x)
    except Exception:
        # 转换失败直接返回原字符串
        return x

df['hits'] = df['hits'].apply(safe_eval)

方案2:正确转换array结构为列表

如果你需要完整解析所有内容,可以先通过正则替换把array()结构转换为原生列表,再进行解析:

import ast
import re

def parse_hits(x):
    # 全局替换所有array(xxx, dtype=object)结构为xxx,转为Python原生列表
    x_processed = re.sub(r'array\((.*?),\s*dtype=object\)', r'\1', x)
    try:
        return ast.literal_eval(x_processed)
    except Exception:
        return x

df['hits'] = df['hits'].apply(parse_hits)

这个方案会把所有array格式自动替换为列表格式,保留所有原始数据的同时可以正常完成解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:06:03