24beads
24beads

Reputation: 201

accessing ujson content using ESP32

There is a file dumped using ujson. It contains a list of dictionaries. When I try to load it again using ujson it throws an error - ValueError: syntax error in JSON What am I missing if you can explain? I am running it on ESP32 using Thonny and I am also fairly new with it..

updated_f = open("riversss.txt", 'r')

data = ujson.loads(updated_f.read())

This is the file content:

[{
    "zjawisko_lodowe": "0",
    "temperatura_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stan_wody": "521",
    "temperatura_wody": "17.54",
    "zjawisko_zarastania_data_pomiaru": "\"2018-11-21 10:57:00\"",
    "zjawisko_lodowe_data_pomiaru": "\"2020-01-24 08:00:00\"",
    "stan_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stacja": "Ustka",
    "zjawisko_zarastania": "0",
    "id_stacji": "154160110",
    "rzeka": "Bałtyk",
    "województwo": "pomorskie"
}][{
    "zjawisko_lodowe": "0",
    "temperatura_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stan_wody": "521",
    "temperatura_wody": "17.54",
    "zjawisko_zarastania_data_pomiaru": "\"2018-11-21 10:57:00\"",
    "zjawisko_lodowe_data_pomiaru": "\"2020-01-24 08:00:00\"",
    "stan_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stacja": "Ustka",
    "zjawisko_zarastania": "0",
    "id_stacji": "154160110",
    "rzeka": "Bałtyk",
    "województwo": "pomorskie"
}][{
    "zjawisko_lodowe": "0",
    "temperatura_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stan_wody": "521",
    "temperatura_wody": "17.54",
    "zjawisko_zarastania_data_pomiaru": "\"2018-11-21 10:57:00\"",
    "zjawisko_lodowe_data_pomiaru": "\"2020-01-24 08:00:00\"",
    "stan_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stacja": "Ustka",
    "zjawisko_zarastania": "0",
    "id_stacji": "154160110",
    "rzeka": "Bałtyk",
    "województwo": "pomorskie"
}]

Upvotes: 1

Views: 151

Answers (1)

Tarmo
Tarmo

Reputation: 4770

Everything between [ and ] is an array in JSON. Currently you've tried to define three unnamed arrays on top level, each containing a single data record. That's not possible, and probably not what you intended.

I assume you wanted a single top-level array with 3 data records like so:

[{
    "zjawisko_lodowe": "0",
    "temperatura_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stan_wody": "521",
    "temperatura_wody": "17.54",
    "zjawisko_zarastania_data_pomiaru": "\"2018-11-21 10:57:00\"",
    "zjawisko_lodowe_data_pomiaru": "\"2020-01-24 08:00:00\"",
    "stan_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stacja": "Ustka",
    "zjawisko_zarastania": "0",
    "id_stacji": "154160110",
    "rzeka": "Bałtyk",
    "województwo": "pomorskie"
}, 
{
    "zjawisko_lodowe": "0",
    "temperatura_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stan_wody": "521",
    "temperatura_wody": "17.54",
    "zjawisko_zarastania_data_pomiaru": "\"2018-11-21 10:57:00\"",
    "zjawisko_lodowe_data_pomiaru": "\"2020-01-24 08:00:00\"",
    "stan_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stacja": "Ustka",
    "zjawisko_zarastania": "0",
    "id_stacji": "154160110",
    "rzeka": "Bałtyk",
    "województwo": "pomorskie"
},
{
    "zjawisko_lodowe": "0",
    "temperatura_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stan_wody": "521",
    "temperatura_wody": "17.54",
    "zjawisko_zarastania_data_pomiaru": "\"2018-11-21 10:57:00\"",
    "zjawisko_lodowe_data_pomiaru": "\"2020-01-24 08:00:00\"",
    "stan_wody_data_pomiaru": "\"2022-06-23 05:10:00\"",
    "stacja": "Ustka",
    "zjawisko_zarastania": "0",
    "id_stacji": "154160110",
    "rzeka": "Bałtyk",
    "województwo": "pomorskie"
}]

The double quotes around timestamps are fishy, though valid syntax. Remember, https://jsonlint.com/ is your friend.

Upvotes: 1

Related Questions