将嵌套JSON从CSV转换为Pandas数据框架



我正在拼命地尝试将CSV中的嵌套JSON功能转换为数据框架行。你能帮忙吗?

CSV行示例

2021 - 09 - 26 t08:25:43.021051958z"{"level":"info","message":"成功(缓存)""request":"GET/api/v1/settingsid = 3""httpCode":200年,"service":"stats-vis-backend","timestamp":"2021-09-2608:25:43"}",ip - 10 - xxx - xxx - 18. -欧盟-中央- 1. compute.internal podname - 75 - ffdf6b gns8v

期望输出(仅使用JSON部分):

时间戳/api/v1/设置吗?2021-09-26 08:25:43

将JSON字符串转换为真正的JSON(非字符串)后,可以在第二列的列值列表(带JSON)上使用pd.DataFrame,如下所示:

# read CSV 
df = pd.read_csv(r'mycsv.csv', sep=',', header=None)
# convert string of JSON/dict to real JSON/dict 
import ast
# the JSON/dict is at column `1` (second column from left)
df[1] = df[1].apply(ast.literal_eval)
# Create dataframe from the JSON part
df_json = pd.DataFrame(df[1].tolist())

如果您已经将CSV读入带有列标头的dataframe,您也可以在上面代码中使用第二列的列标签而不是1作为第二列的列标签。

结果:

print(df_json)

level           message                   request  httpCode            service            timestamp
0  info  Success (Cached)  GET /api/v1/settingsid=3       200  stats-vis-backend  2021-09-26 08:25:43

最新更新