如何访问上传的json文件google colab

kqlmhetl  于 2023-03-20  发布在  Go
关注(0)|答案(4)|浏览(175)

我被困在尝试读取谷歌colab中的文件,它应该读取文件作为一个简单的JSON,但我甚至不能做一个json.dumps(file)没有得到100的错误
上传文件:

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

打印工作,它显示文件的内容:

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

但我在尝试执行json.dumps(uploaded)时得到Object of type 'bytes' is not JSON serializable
文件不应该读作json而不是bytes吗?在其他一些情况下,我测试它也读作dictionary
JSON文件:

[
    {
        "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"
                            }
                        ]
                    }
                ]
            }
        ]
    }
]
8ehkhllq

8ehkhllq1#

如果只上传1个文件,可以从values()获取内容

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

然后,您可以将json字符串转换为dict

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

下面是notebook的示例

im9ewurl

im9ewurl2#

JSON处理Unicode字符串,而不是字节序列。

json.dumps(uploaded.decode("utf-8"))
u4dcyp6a

u4dcyp6a3#

我更喜欢使用 iofiles
首先,我进口它们(还有Pandas):

import io
import pandas as pd
from google.colab import files

然后,我使用一个文件小部件上传文件:

uploaded = files.upload()

要将数据加载到 Dataframe 中:

df = pd.read_json(io.StringIO(uploaded.get('file.json').decode('utf-8')))

Dataframe df包含所有json数据。

6yt4nkrj

6yt4nkrj4#

另一种方法是将json文件上传到Colab,然后将其路径复制为文件名。
以下是如何做到这一点:

import io
import pandas as pd
from google.colab import files
uploaded = files.upload()

这是你上传文件的地方。
现在,如果您在Colab上单击代码左侧的以下文件夹图标,您应该会看到您上传的文件。

将鼠标悬停在文件名上,单击旁边的3个点,然后单击“复制路径”。

在此之后,只需通过粘贴复制的文件路径来使用此代码:

df = pd.read_json('file_path_copied')

相关问题