Python json - 编辑.json文件

时间:2016-05-24 01:35:11

标签: python json

我正在尝试向.json文件添加内容。

这就是保存

        "106569102398611456" : {
        "currentlocation" : "Pallet Town",
        "name" : "Anthony",
        "party" : [
            {
                "hp" : "5",
                "level" : "1",
                "pokemonname" : "bulbasaur"
            }
        ],
        "pokedollars" : 0
    }
}

我正在尝试做的是命令在“派对”中添加其他内容。这是我想要的一个例子。

    "106569102398611456" : {
        "currentlocation" : "Pallet Town",
        "name" : "Anthony",
        "party" : [
            {
                "hp" : "5",
                "level" : "1",
                "pokemonname" : "bulbasaur"
            },
            {
                "hp" : "3",
                "level" : "1",
                "pokemonname" : "squirtle"
            }

        ],
        "pokedollars" : 0
    }
}

编辑:

这是我尝试的但我不知道

def addPokemon(pokemon):
    pokemonName = convert(pokemon)
    for pokemon in players['party']:
        pokemon.append(pokemonName)

转换(口袋妖怪)基本上抓住我输入的口袋妖怪,并改变给它一个水平和健康状态添加到.json文件

1 个答案:

答案 0 :(得分:1)

要更新JSON文件,请将对象写出到临时文件,然后将目标文件替换为临时文件。例如:

import json
import os
import shutil
import tempfile

def rewriteJsonFile(sourceObj, targetFilePath, **kwargs):
  temp = tempfile.mkstemp()
  tempHandle = os.fdopen(temp[0], 'w')
  tempFilePath = temp[1]
  json.dump(sourceObj, tempHandle, **kwargs)
  tempHandle.close()
  shutil.move(tempFilePath, targetFilePath)

这假设更新是连续发生的。如果可能并行发生更新,则需要某种锁定以确保一次只进行一次更新。虽然在那时,你最好使用像sqlite这样的数据库并以JSON格式返回查询。