我正在拼命地尝试将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部分):
时间戳将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