6 ms·
Thank this is a very nice answer and it makes sense to me. Indeed I once sat down to try Kotlin for a day. The amount of code I had to write to get a json from
by teekert 6y ago
Thank this is a very nice answer and it makes sense to me. Indeed I once sat down to try Kotlin for a day. The amount of code I had to write to get a json from an api into a dict that I could address by key was baffling to me. In python it took met 2 imported modules and then 2 lines (something like
some_dict = module.scrape_api()
value_I_want = some_dict['my_value']
I gave up after a day, when I just wrote down exactly what I expected to pull down and what types were in the values and keys. I can understand it helps you prevent errors but man is there a learning curve... BTW, I could write those checks in Python as well, but they are optional.
- garethrowlands 6y ago> I could write those checks in Python as well, but they are optional You're probably going to need to check `value_I_want` though. So maybe the checks aren't quite as optional as they look.
- dheera 6y agoChecks in Python are pretty concise. If you just want to have a default value if the key my_value doesn't exist, this is all you need: value_I_want = some_dict.get('my_value', default_value) If you want a more strict check including type checking: value_I_want = some_dict.get('my_value') if type(value_I_want) is not str: do_something() In Java the real problem is nested JSON objects -- it's a real PITA to read those. You can't do something like this (Python): value = some_dict.get("foo", {}).get("bar", {}).get("blah", default_value)
- teekert 6y agoI believe one can even do: value_I_want = some_dict.get('my_value':str) and value = some_dict["foo"]["bar"]["blah"]