使用python在json中添加dict文件

时间:2017-12-05 03:13:58

标签: python json python-2.7 dictionary

我有类似这样的代码

import json

param1 = "xxxxxx"
param2 = "anaaaahhhhhhhhhj"
param3 = "333333333"

with open('data/'+param1+'.json','a') as f:
    data = param2,
    json.dump(data, f, sort_keys=True, indent=1,ensure_ascii=False)

当我执行此操作时,输出就像这样,而不是真正的字典

[
 "anaaaahhhhhhhhhj"
][
 "anaaaahhhhhhhhhj"
]

我想要

[
 "anaaaahhhhhhhhhj"
][
 "anaaaahhhhhhhhhj"
]

[
 "anaaaahhhhhhhhhj",
 "blablablabal"
]

任何人都可以帮助我吗?

ps:我是python的新手

1 个答案:

答案 0 :(得分:0)

假设您正在处理列表并在每次运行脚本时尝试附加到列表:首先加载列表,执行追加操作,然后将其转储回来。

这假设您有一个名为“mydata.json”的现有文件,其中包含[]

第一种方法(更容易理解):

import json

fileName = 'mydata.json'

# Load the list first
with open(fileName, 'r') as f:
    data = json.load(f)

# Perform an append operation
data.append('New Value')

# Dump it back out
with open(fileName, 'w') as f:
    json.dump(data, f, sort_keys=True, indent=1, ensure_ascii=False)

第二种方法(使用搜寻):

import json

fileName = 'mydata.json'

with open(fileName, 'r+') as f:
    # Load the list first
    data = json.load(f)

    # Perform an append operation
    data.append('New Value')

    # Dump it back out
    f.seek(0)
    json.dump(data, f, sort_keys=True, indent=1, ensure_ascii=False)
    f.truncate()

运行这些程序中的任何一个将导致“mydata.json”包含:

[
 "New Value",
 "New Value",
 "New Value"
]