Python插入json

unguejic  于 2023-03-21  发布在  Python
关注(0)|答案(2)|浏览(122)

所以我需要用Python和JSON创建一个小的JSON数据库,并向其中插入新数据。
这是我正在努力做的:

{
    "One": "catherine.hamilton@outlook.com:1234567",
    "Two": ["catherine.hamilton@outlook.com:1234567", "catherine.hamilton@outlook.com:1234567"]
}

所以我想像这样插入多个示例:

{
    "One": "catherine.hamilton@outlook.com:1234567",
    "Two": ["catherine.hamilton@outlook.com:1234567", "catherine.hamilton@outlook.com:1234567"],
    "One": "John.Jones@outlook.com:1234567",
    "Two": ["John.Jones@outlook.com:1234567", "John.Jones@outlook.com:1234567"],
    "One": "Matt.Demon@outlook.com:1234567",
    "Two": ["Matt.Demon@outlook.com:1234567", "Matt.Demon@outlook.com1234567"],
    "One": "Adam.Baker@outlook.com:1234567",
    "Two": ["Matt.Demon@outlook.com:1234567", "Matt.Demon@outlook.com:1234567"],

}

(我知道这是无效的JSON语法,我不确定正确的是什么)。
1.假设我想将“丹尼尔. Michaelson@outlook.com:1234567”插入到json中,那么它将添加
“一”:“丹尼尔·迈克尔森@ outlook.com:1234567”,“二”:[""],
我该怎么做?
1.假设我想在Two中插入另一行,对于Matt.Demon@outlook.com,在Python中我将如何做到这一点?
谢谢大家!

yyyllmsg

yyyllmsg1#

正如你所说,这不是一个有效的JSON,所以你的问题不是很清楚。JSON是由键和值构建的,但是键需要是单射的。这意味着每两个键应该彼此不同。
回到你的问题。在python中,字典用于存储类似json的数据。所以你实际上需要将所有数据存储在字典中,然后将其转换为json。例如:

import json

data = {"One": "catherine.hamilton@outlook.com:1234567",
    "Two": ["catherine.hamilton@outlook.com:1234567", "catherine.hamilton@outlook.com:1234567"]
        }

json_s = json.dumps(data)

如果您已经有一个JSON字符串,并希望使用loads将其转换为字典:

data2 = json.loads(json_s)
1aaf6o9v

1aaf6o9v2#

这是基本思想,你可以考虑使用一个“import_data”函数来读取文件并返回数据结构,以及一个“export_data”函数来将其写回。

import json
jjj = """\
[
    {
        "One": "catherine.hamilton@outlook.com:1234567",
        "Two": ["catherine.hamilton@outlook.com:1234567", "catherine.hamilton@outlook.com:1234567"]
    }
]"""

data = json.loads( jjj )

data.append({
    "One": "John.Jones@outlook.com:1234567",
    "Two": ["John.Jones@outlook.com:1234567", "John.Jones@outlook.com:1234567"]
})
data.append({
    "One": "Matt.Demon@outlook.com:1234567",
    "Two": ["Matt.Demon@outlook.com:1234567", "Matt.Demon@outlook.com1234567"]
})
data.append({
    "One": "Adam.Baker@outlook.com:1234567",
    "Two": ["Matt.Demon@outlook.com:1234567", "Matt.Demon@outlook.com:1234567"]
})

print(json.dumps(data, indent=4))

输出:

[
    {
        "One": "catherine.hamilton@outlook.com:1234567",
        "Two": [
            "catherine.hamilton@outlook.com:1234567",
            "catherine.hamilton@outlook.com:1234567"
        ]
    },
    {
        "One": "John.Jones@outlook.com:1234567",
        "Two": [
            "John.Jones@outlook.com:1234567",
            "John.Jones@outlook.com:1234567"
        ]
    },
    {
        "One": "Matt.Demon@outlook.com:1234567",
        "Two": [
            "Matt.Demon@outlook.com:1234567",
            "Matt.Demon@outlook.com1234567"
        ]
    },
    {
        "One": "Adam.Baker@outlook.com:1234567",
        "Two": [
            "Matt.Demon@outlook.com:1234567",
            "Matt.Demon@outlook.com:1234567"
        ]
    }
]

相关问题