[英]How to add a key-value pair in dictionary for dumping data in JSON format in python?
我想将一个键值对添加到具有一些键值对的现有数组中,然后以JSON格式转储此信息。
我尝试了以下代码:
import json
student_data = [{'stu_name':'name','id no':7}]
if result is 1:
student_data['result'] = 'pass'
else:
student_data['result'] = 'fail'
if school is 1:
student_data['school'] = 'secondary school'
else:
student_data['school'] = 'primary school'
with open(file.json, "w") as f:
json.dump(student_data, f)
但是这段代码给我在"student_data['result'] = 'pass'
行中的错误
我尝试从student_data = [{'stu_name':'name','id no':7}]
删除[]
student_data = [{'stu_name':'name','id no':7}]
但随后只有键被打印在文件中而没有值。
我该如何纠正?
您有一个带有字典的列表。 使用索引:
student_data[0]['result'] = 'pass'
或稍后在写时添加列表:
student_data = {'stu_name':'name','id no':7}
# ...
with open(file.json, "w") as f:
json.dump([student_data], f)
注意:当您应该测试相等性时,请勿对整数使用身份测试。 仅仅因为CPython 恰好会生成小整数,所以使用is 1
不是一个好主意。 使用== 1
代替:
student_data = {'stu_name':'name','id no':7}
student_data['result'] = 'pass' if result == 1 else 'fail'
student_data['school'] = 'secondary school' if school == 1 else 'primary school'
with open(file.json, "w") as f:
json.dump([student_data], f)
在上面的示例中,我使用条件表达式来设置result
和school
密钥; 您也可以直接在字典文字中使用它们:
student_data = [{'stu_name': 'name', 'id no':7,
'result': 'pass' if result == 1 else 'fail',
'school': 'secondary school' if school == 1 else 'primary school',
}]
with open(file.json, "w") as f:
json.dump(student_data, f)
如果要将student_data更改为字典,则可以尝试使用类似方法来更新字典。 您将从student_data中删除[],因此它将变为dict对象。
>>> student_data = {'stu_name':'name','id no':7}
>>> student_data.update({'result':'pass'})
>>> student_data
{'stu_name': 'name', 'id no': 7, 'result': 'pass'}
>>>
或者您可以分配它:
>>> student_data = {'stu_name':'name','id no':7}
>>> student_data['result'] = 'pass'
>>> student_data
{'stu_name': 'name', 'id no': 7, 'result': 'pass'}
>>>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.