【问题标题】:Add data to json dict in python在python中将数据添加到json dict
【发布时间】:2021-06-02 17:06:20
【问题描述】:

嗨,我正在导入多个 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'}]

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

【问题讨论】:

  • 附加数据的位置重要吗?

标签: python json datetime jupyter


【解决方案1】:

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

dictionary[key] = datetime.now()

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

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

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

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

【讨论】:

  • 是或只是字典[key]= str(datetime.now())
【解决方案2】:

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

    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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2023-03-29
    • 2023-01-26
    • 2018-05-18
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    相关资源
    最近更新 更多