[英]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.