Написать в конкретные объекты в JSON.питон - PullRequest
0 голосов
/ 29 мая 2019

Я хочу создать программу, которая загружает файл json, читает его, а затем добавляет объект в список.

import json

newo = {
    "balance": "1234",
    "time": "forever"
}

with open("json.json", "r") as f:
    data = json.load(f)

with open("json.json", "w") as f:
    json.dump(newo, f)

Это файл Python, который я использовал.

{ 
    "cointiply": [
        {
            "balance" : "242537",
            "time": "28.05.2019"
        },
        {
            "balance": "246362",
            "time": "29.05.2019"
        }
    ]
}

И это json-файл.

Теперь я хочу, чтобы список newo был вставлен в список json "неумолимо".

Есть идеи, как это можно сделать?Потому что сейчас список «newo» удаляет все мысли в файле json, а затем просто вставляется, как если бы файл был пустым.

Ответы [ 3 ]

2 голосов
/ 29 мая 2019

Использование list.append

Пример:

import json

newo = {
    "balance": "1234",
    "time": "forever"
}

with open("json.json", "r") as f:
    data = json.load(f)

data["cointiply"].append(newo)  #Append newo

with open("json.json", "w") as f:
    json.dump(data, f)
1 голос
/ 29 мая 2019

Вы можете попробовать:

>>> demo = {
...     "cointiply": [
...         {
...             "balance" : "242537",
...             "time": "28.05.2019"
...         },
...         {
...             "balance": "246362",
...             "time": "29.05.2019"
...         }
...     ]
... }
>>> newo = {
...     "balance": "1234",
...     "time": "forever"
... }
>>> demo["cointiply"].append(newo)
>>> demo
{'cointiply': [{'balance': '242537', 'time': '28.05.2019'}, {'balance': '246362', 'time': '29.05.2019'}, {'balance': '1234', 'time': 'forever'}]}
0 голосов
/ 29 мая 2019

Вы можете использовать временный файл, записать в него новые данные и затем заменить два файла, вместо того, чтобы открывать один и тот же файл дважды. Что касается списка - вам нужно использовать append, чтобы добавить ваши новые данные в элемент cointiply:

from os import remove
from shutil import move
from tempfile import mkstemp

newo = {
    "balance": "1234",
    "time": "forever"
}


fh, abs_path = mkstemp()
file_path = "json.json"
with open(fh, "w") as newf, open(file_path, "r") as oldf:
    data = json.load(oldf)
    data["cointiply"].append(newo)
    json.dump(data, newf)
    # Remove original file
    remove(file_path)
    # Move new file
    move(abs_path, file_path)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...