繁体   English   中英

将数据添加到 python 中的 json dict

[英]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' object has no attribute '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'}]

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

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

dictionary[key] = datetime.now()

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

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

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

PS:JSON 格式实际上使用这些 {} 括号作为外部括号。 您正在使用一个列表,这并不常见。

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

    adict[key] = value

与问题无关,但在处理文件时使用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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM