Python 将复杂的Json转换为CSV
该文件来自slack server导出文件,因此结构每次都会发生变化(如果人们用文本或反应响应线程) 我试过几个这样的问题,都有类似的问题。但我保证我的问题是不同的 示例JSON文件:Python 将复杂的Json转换为CSV,python,json,csv,Python,Json,Csv,该文件来自slack server导出文件,因此结构每次都会发生变化(如果人们用文本或反应响应线程) 我试过几个这样的问题,都有类似的问题。但我保证我的问题是不同的 示例JSON文件: "client_msg_id": "f347abdc-9e2a-4cad-a37d-8daaecc5ad51", "type": "message", "text": "I came here just to check <@U3QSFG5A4> Thi
"client_msg_id": "f347abdc-9e2a-4cad-a37d-8daaecc5ad51",
"type": "message",
"text": "I came here just to check <@U3QSFG5A4> This is a sample :slightly_smiling_face:",
"user": "U51N464MN",
"ts": "1550511445.321100",
"team": "T1559JB9V",
"user_team": "T1559JB9V",
"source_team": "T1559JB9V",
"user_profile": {
"avatar_hash": "gcc8ae3d55bb",
"image_72": "https:\/\/secure.gravatar.com\/avatar\/fcc8ae3d55bb91cb750438657694f8a0.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0026-72.png",
"first_name": "A",
"real_name": "a name",
"display_name": "user",
"team": "T1559JB9V",
"name": "name",
"is_restricted": false,
"is_ultra_restricted": false
},
"thread_ts": "1550511445.321100",
"reply_count": 3,
"reply_users_count": 3,
"latest_reply": "1550515952.338000",
"reply_users": [
"U51N464MN",
"U8DUH4U2V",
"U3QSFG5A4"
],
"replies": [
{
"user": "U51N464MN",
"ts": "1550511485.321200"
},
{
"user": "U8DUH4U2V",
"ts": "1550515191.337300"
},
{
"user": "U3QSFG5A4",
"ts": "1550515952.338000"
}
],
"subscribed": false,
"reactions": [
{
"name": "trolldance",
"users": [
"U51N464MN",
"U4B30MHQE",
"U68E6A0JF"
],
"count": 3
},
{
"name": "trollface",
"users": [
"U8DUH4U2V"
],
"count": 1
}
]
},
“客户信息id”:“f347abdc-9e2a-4cad-a37d-8daaecc5ad51”,
“类型”:“消息”,
“文本”:“我来这里只是为了检查这是一个样本:微微的笑脸:”,
“用户”:“U51N464MN”,
“ts”:“1550511445.321100”,
“团队”:“T1559JB9V”,
“用户团队”:“T1559JB9V”,
“源团队”:“T1559JB9V”,
“用户配置文件”:{
“阿凡达散列”:“gcc8ae3d55bb”,
“image\u 72”:“https:\/\/secure.gravatar.com\/avatar\/fcc8ae3d55bb91cb750438657694f8a0.jpg?s=72&d=https%3A%2F%2Fa.slack edge.com%2Fdf10d%2Fimg%2Favatars%2Fava\u 0026-72.png”,
“名字”:“A”,
“真实姓名”:“姓名”,
“显示名称”:“用户”,
“团队”:“T1559JB9V”,
“名称”:“名称”,
“is_restricted”:false,
“是否超限制”:false
},
“螺纹”:“1550511445.321100”,
“答复计数”:3,
“回复用户数”:3,
“最新回复”:“1550515952.338000”,
“回复用户”:[
“U51N464MN”,
“U8DUH4U2V”,
“U3QSFG5A4”
],
“答复”:[
{
“用户”:“U51N464MN”,
“ts”:“1550511485.321200”
},
{
“用户”:“U8DUH4U2V”,
“ts”:“1550515191.337300”
},
{
“用户”:“U3QSFG5A4”,
“ts”:“1550515952.338000”
}
],
“签署”:假,
“反应”:[
{
“名称”:“巨魔之舞”,
“用户”:[
“U51N464MN”,
“U4B30MHQE”,
“U68E6A0JF”
],
“计数”:3
},
{
“姓名”:“巨魔脸”,
“用户”:[
“U8DUH4U2V”
],
“计数”:1
}
]
},
问题是,有几个键是不同的,因此消息之间的相同json文件中的结构会根据其他用户与给定消息的交互方式而变化。您需要csv文件格式做什么,请告诉我您的应用程序,以便我可以帮助您。“但我保证我的问题是不同的。”:这还不够,详细解释为什么其他答案不符合您的需要。您的问题和显示您的尝试和强制显示您预期的
CSV
输出。@Deanvangreuen我想分析对话的内容,然后创建一个数据库,其中的问题已被询问和回答。
with open("file.json") as file:
d = json.load(file)
df = pd.io.json.json_normalize(d)
df.columns = df.columns.map(lambda x: x.split(".")[-1])