发布于2024-11-06 19:36 阅读(440) 评论(0) 点赞(27) 收藏(3)
今天我对昨天做的另一个问题进行了修改。挑战是:如何将 CSV 转换为分层 json,但键和值不同。必须使用PYTHON(pandas 和 json 库)来完成
所以我有下一个 CSV 文件:
TABLE_NAME,TIPO_CARGA,COLUMN_NAME,DATA_TYPE
CUENTAS,Full load,PERFIL,NVARCHAR2
CUENTAS,Full load,LLAMADA_INI,DATE
CUENTAS,Full load,LLAMADA_END,DATE
CUENTAS_PLAN,Delta,REGISTRO,NVARCHAR2
CUENTAS_PLAN,Delta,ULTIMA_VISITA,DATE
CUENTAS_PLAN,Delta,FECHA,DATE
CUENTAS_TACTICAS,Delta,CIUDAD,NVARCHAR2
CUENTAS_TACTICAS,Delta,SALIDA,NVARCHAR2
CUENTAS_TACTICAS,Delta,COMPLETADO,DATE
CUENTAS_MIEMBROS,Full load,NEGOCIO,NVARCHAR2
CUENTAS_MIEMBROS,Full load,CORE,NVARCHAR2
CUENTAS_MIEMBROS,Full load,DESC,NVARCHAR2
结果一定是这样的:
{
"schema_name": {
"CUENTAS": {
"LOAD_TYPE": "Full load",
"FIELDS": {
"PERFIL": "NVARCHAR2",
"LLAMADA_INI": "DATE",
"LLAMADA_END": "DATE"
}
},
"CUENTAS_PLAN": {
"LOAD_TYPE": "Delta",
"FIELDS": {
"ULTIMA_VISITA": "DATE",
"FECHA": "DATE",
"CIUDAD": "NVARCHAR2"
}
},
"CUENTAS_TACTICAS": {
"LOAD_TYPE": "Delta",
"FIELDS": {
"CIUDAD": "NVARCHAR2",
"SALIDA": "NVARCHAR2",
"COMPLETADO": "DATE"
}
}
{...}
}
}
我准备了一个python代码来创建一个普通的json结构,如“key”:“value”,其中key是一个规范化的文本,value是来自CSV的信息……但这不符合要求。
有人可以帮我创建这个python代码吗?
问候
使用groupby
和字典理解:
out = json.dumps({
'schema_name': {
n: {'LOAD_TYPE': l, 'FIELDS': g.to_dict()}
for (n, l), g in df.set_index('COLUMN_NAME').groupby(
['TABLE_NAME', 'TIPO_CARGA']
)['DATA_TYPE']
}
}, indent=2)
输出:
{
"schema_name": {
"CUENTAS": {
"LOAD_TYPE": "Full load",
"FIELDS": {
"PERFIL": "NVARCHAR2",
"LLAMADA_INI": "DATE",
"LLAMADA_END": "DATE"
}
},
"CUENTAS_MIEMBROS": {
"LOAD_TYPE": "Full load",
"FIELDS": {
"NEGOCIO": "NVARCHAR2",
"CORE": "NVARCHAR2",
"DESC": "NVARCHAR2"
}
},
"CUENTAS_PLAN": {
"LOAD_TYPE": "Delta",
"FIELDS": {
"REGISTRO": "NVARCHAR2",
"ULTIMA_VISITA": "DATE",
"FECHA": "DATE"
}
},
"CUENTAS_TACTICAS": {
"LOAD_TYPE": "Delta",
"FIELDS": {
"CIUDAD": "NVARCHAR2",
"SALIDA": "NVARCHAR2",
"COMPLETADO": "DATE"
}
}
}
}
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/2043860/9df6bad7df616639256d/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!