這就是我向 JSON 檔案添加值的方式。
with open('data.json', 'r ') as f:
json_datas = json.load(f)
ids = json_datas["ids"]
ids.append(user_id)
json_new_datas = json.dumps({"ids": ids})
f.seek(0)
f.write(json_new_datas)
這是 JSON 檔案的樣子:
{"ids": [447737210570276875, 528619819306713089, 447428922544488449, 780750434956607488]}
我試過洗掉這樣的值,但它不起作用:
with open('data.json', 'r ') as f:
json_datas = json.load(f)
ids = json_datas["ids"]
ids.remove(user_id)
json_new_datas = json.dumps(json_datas)
f.seek(0)
f.write(json_new_datas)
如何洗掉user_id?
uj5u.com熱心網友回復:
它不起作用,因為您是在檔案的現有內容之上撰寫的,所以如果您的陣列是這樣的:
{"ids": [447737210570276875, 528619819306713089, 447428922544488449, 780750434956607488]}
當您洗掉最后一個 ID780750434956607488時,您將擁有一個像這樣的物件:
{"ids": [447737210570276875, 528619819306713089, 447428922544488449]}
因此,當您嘗試將其寫入現有檔案的頂部時,字串將重疊,您將擁有如下內容:
{"ids": [447737210570276875, 528619819306713089, 447428922544488449]} 780750434956607488]}
這會破壞檔案。解決問題的一種可能方法是首先使用函式從檔案中洗掉所有內容f.truncate(0),然后寫入新物件:
with open('data.json', 'r ') as f:
json_datas = json.load(f)
ids = json_datas["ids"]
ids.remove(user_id)
f.seek(0)
f.truncate(0)
json_new_datas = json.dump({"ids": ids}, f)
uj5u.com熱心網友回復:
你所擁有的是將“json_datas”與鍵值對配對:id:[list] 鍵“ids”與串列配對。嘗試將 ids.remove(value) 更改為 ids.remove(index)。
除了 .remove(),還有 del list[index] 和 splice 也有類似的效果。請注意,當您洗掉時,您的串列大小會變小(-1),因此應該調整下一個洗掉索引
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/426819.html
