1

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"
}]
Tarmo
  • 3,728
  • 1
  • 8
  • 25
24beads
  • 161
  • 1
  • 2
  • 9
  • 2
    Copy the file and run it through an online JSON linter. That should tell you where the problem is. It might help if you shared the code to dump it or the contents of the file, as well. – romkey Jun 23 '22 at 05:02

1 Answers1

1

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.

Tarmo
  • 3,728
  • 1
  • 8
  • 25