Как получить доступ к загруженному json файлу google colab - PullRequest
0 голосов
/ 23 февраля 2020

Я застрял, пытаясь прочитать файлы в Google Colab, он должен прочитать файл как простой JSON, но я не могу даже сделать json.dumps(file) без получения 100 ошибок

Загрузка файл:

import json 
import csv 
from google.colab import files
uploaded = files.upload()

Печать работает, Он показывает содержимое файла:

print(uploaded)
data = json.dumps(uploaded)

Но я получаю Object of type 'bytes' is not JSON serializable при попытке сделать json.dumps(uploaded)

Разве файл не должен читаться как json, а не bytes? В некоторых других случаях я тестировал его также как dictionary

JSON file:

[
    {
        "type": "message",
        "subtype": "channel_join",
        "ts": "123",
        "user": "DWADAWD",
        "text": "<@DWADAWD> has joined the channel"
    },
    {
        "type": "message",
        "subtype": "channel_join",
        "ts": "123",
        "user": "DWADAWD",
        "text": "<@DWADAWD> has joined the channel"
    },
    {
        "text": "Let's chat",
        "user_profile": {
            "display_name": "XASD",
            "team": "TDF31231",
            "name": "XASD",
            "is_restricted": false,
            "is_ultra_restricted": false
        },
        "blocks": [
            {
                "type": "rich_text",
                "block_id": "2N1",
                "elements": [
                    {
                        "type": "rich_text_section",
                        "elements": [
                            {
                                "type": "text",
                                "text": "Let's chat"
                            }
                        ]
                    }
                ]
            }
        ]
    }
]

Ответы [ 2 ]

1 голос
/ 24 февраля 2020

Если вы загрузите только 1 файл. Вы можете получить содержимое из его values()

data = next(iter(uploaded.values()))

Затем вы можете преобразовать json строку в dict

d = json.loads(data.decode())

Вот пример блокнот

1 голос
/ 23 февраля 2020

JSON обрабатывает строки Unicode, а не байтовые последовательности. Попробуйте:

json.dumps(uploaded.decode("utf-8"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...