簡體   English   中英

將復雜的 Json 轉換為 CSV

[英]Convert complex Json to CSV

該文件來自 slack 服務器導出文件,因此結構每次都不同(如果人們用文本或反應響應線程)。

我已經嘗試了幾個 SO 問題,有類似的問題。 但我保證我的問題是不同的。 這個也是這個,也是這個

示例 JSON 文件:

        "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
            }
        ]
    },

問題是有幾個鍵會有所不同,因此消息之間同一 json 文件中的結構會發生變化,具體取決於其他用戶如何與給定消息進行交互。


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])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM