在 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 格式实际上将这些 {} 括号用于外部括号。您正在使用一个不常见的列表。
嗨,我正在导入多个 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 格式实际上将这些 {} 括号用于外部括号。您正在使用一个不常见的列表。