jsonファイルがekstraブラケットを取得する理由がわかりません。Jsonファイルの更新または編集時にJsonフォーマットの問題が発生する
これは私のproducts.jsonファイルです。右端にブラケットが2つ多くあります。
{"products": {"27": {"price": 5, "pk": 27, "name": "gfasd", "amount": 3, "type": "sokker", "imageURL": "/media/gg_6A1aZ75.jpg"}}}}}
モデルインスタンスが保存されるたびに、post_save関数を使用してjsonファイルを更新します。
@receiver(post_save, sender=item, dispatch_uid="update_json")
def update_stock(sender, instance, **kwargs):
pk = str(instance.pk)
with open(MEDIA_ROOT + '/json/products.json', 'r+') as json_file:
products = json.loads(json_file.read())
print(products) <--- 1
products["products"].pop(pk, None)
print(products) <--- 2
products["products"][pk] = instance.returnAsJSON()
print(products) <--- 3
json_file.seek(0)
json_file.write(json.dumps(products))
プリントアウトは次のとおりです。
{'products': {'27': {'price': 123, 'type': 'sokker', 'name': 'gfasd', 'amount': 3, 'pk': 27, 'imageURL': '/media/gg_6A1aZ75.jpg'}}}
{'products': {}}
{'products': {'27': {'price': 5, 'pk': 27, 'name': 'gfasd', 'amount': 3, 'type': 'sokker', 'imageURL': '/media/gg_6A1aZ75.jpg'}}}
最後の印刷が2つのekstraブラケットを持っていないので、私はそれが私の関数の最後の2行かもしれ推測しています。しかし、私は彼らがなぜそれをするのか本当に知りません。
多分あなたは、既存のファイル内のテキストを上書きし、それが前のテキストを削除しないと、あなたが古いブラケット見る - 'r'だけ' w'を書くことが、後にオープンを読み取ることのみより良いオープンを。 – furas
あなたの問題を解決した場合、正しい答えとしてマークすることを忘れないでください* –