在 python 中向 json 字典添加数据

Add data to json dict in python

嗨,我正在导入多个 json 文件

并且我想将当前时间添加到文件的每个文档 我试过了:

for filename in os.listdir(directory):
    if filename.endswith(".json"):
        f = open(filename)
        data = json.loads(f.read())
        for i in range (len(data)):
            print(data[i])
            data[i].append({'Date':datetime.now()})
            print(data[i])

我得到这个:( AttributeError: 'dict' 对象没有属性 'append') 因为它不是列表

数据如下(我的 json 文件内容):

[{'trimestre': '2',
  'season': 'spring'},
 {'trimestre': '2',
  'season': 'spring'}]

我希望它看起来像

[{'date': '2021-06-02T12:18:22.694+02:00',
  'trimestre': '2',
  'season': 'spring'},
 {'date': '2021-06-02T12:18:22.694+02:00',
  'trimestre': '2',
  'season': 'spring'}]

日期=当前时间 有帮助吗?

要将键值对添加到字典,语法如下:

    adict[key] = value

与问题无关,但在处理文件时使用 with open 更安全

    with open(filename) as json_file:
        data = json.load(json_file)
        # data contains a list of dicts
        for json_dict in data:
            json_dict['Date'] = datetime.now()

首先,您的回答: 您唯一需要更改的行是分配的行。就像上面的答案也提到了,分配必须改变,像这样:

dictionary[key] = datetime.now()

但是,JSON 无法存储日期时间对象,这就是您必须更改格式的原因。因此,我建议您使用 strftime():

dictionary[key] = datetime.now().strftime("%d/%m/%y")

您可以将格式更改为您想要的格式。

P.S.: JSON 格式实际上将这些 {} 括号用于外部括号。您正在使用一个不常见的列表。