python での JSON の扱いについてわすれるのでメモ。

json.dumps

json.dumps()に入れた変数を JSON string に変換する。

>>> import json
>>> data = {'abc': 123}
>>> type(data_json)
<class 'str'>
>>> data_json = json.dumps(data)
>>> data_json
'{"abc": 123}'

json.loads

json.loads(JSON string) で python dictionary に型を変換する。

>>> import json
>>> data = {'abc': 123}
>>> type(data_json)
<class 'str'>
>>> data_json = json.dumps(data)
>>> data_json
'{"abc": 123}'

>>> load_json = json.loads(data_json)
>>> load_json 
{'abc': 123}
>>> type(load_json) 
<class 'dict'>
>>> load_json['abc'] 
123

Django Rest Framework

Serializerでの Create, Update, Delete

"”” Create obj "””

data = {'user': 1}
serializer = StatusSerializer(data=data)
serializer.is_valid() # is_validでデータを検証しないと .save() でエラーが出る
serializer.save()

"”” Update obj "””

obj = Status.objects.first()
data = {'content': 'some new content', 'user': 1}
update_serializer = StatusSerializer(obj, data=data)
update_serializer.is_valid()
update_serializer.save

update_serializer.errors
{'user': ['This field is required.']}

"”” Delete obj "””

obj = Status.objects.last()
obj.delete()

Delete は Serializerを使わず、objectを取得して削除。