mirror of https://github.com/01-edu/public.git
nprimo
2 years ago
committed by
Niccolò Primo
1 changed files with 63 additions and 0 deletions
@ -0,0 +1,63 @@
|
||||
## object_to_json |
||||
|
||||
A lot of information on the web are shared in the JSON format. This exercise will be about transforming object to JSON and vice-versa. |
||||
|
||||
### Instructions |
||||
|
||||
You just landed a new job, congrats! Your new task is to build two functions to allow new users to register to your new shiny website. |
||||
|
||||
The new registration information comes as string formatted as JSON. You need to create a file `registration.py` that will have the following functions inside: |
||||
|
||||
1. `create_new_user` that will receive a `dict` and will return a new object of the class `User` provided below. To be valid, the input `dict` must have a `username` key and a `email` key to be valid. The new `User` will have the same `username` and `email` of the input `dict`. If the input `dict` is invalid, the default user will be returned. |
||||
|
||||
```python |
||||
class User: |
||||
username = 'user' |
||||
email = 'something@email.com' |
||||
``` |
||||
|
||||
2. `user_to_json` that will receive a `User` and will return the object as a string in JSON format. Be aware of the Python types that can be converted to JSON! |
||||
|
||||
### Usage |
||||
|
||||
Here is a possible `test.py` to test your functions: |
||||
|
||||
```python |
||||
import create_new_user |
||||
import user_to_json |
||||
|
||||
registration_0 = '{"username": "mario", "email": "mario@me.it"}' |
||||
registration_1 = '{"city": "Rome", "country": "Italy"}' |
||||
|
||||
user_0 = create_new_user(registration_0) |
||||
user_1 = create_new_user(registration_1) |
||||
|
||||
print(user_to_json(user_0)) |
||||
print(user_to_json(user_1)) |
||||
``` |
||||
|
||||
```console |
||||
$ python3 test.py |
||||
{"username": "mario", "email": "mario@me.it"} |
||||
{} |
||||
$ |
||||
``` |
||||
|
||||
### Hints |
||||
|
||||
- It is possible to convert an object to `dict` using the `__dict__` casting. |
||||
|
||||
```python |
||||
class C: |
||||
a = 1 |
||||
b = 2 |
||||
|
||||
my_obj = C() |
||||
my_obj_dict = my_obj.__dict__ # my_obj_dict will be a dictionary with the object my_obj values |
||||
``` |
||||
|
||||
### Notions |
||||
|
||||
- [Class and Object](https://docs.python.org/3/tutorial/classes.html#a-first-look-at-classes) |
||||
- [json.loads()](https://www.geeksforgeeks.org/json-loads-in-python/) |
||||
- [json.dumps()](https://www.geeksforgeeks.org/json-dumps-in-python/) |
Loading…
Reference in new issue