Error saving a dictionary

I have now found another solution to my problem and all data is stored in the TinyDB again.

If a database entry is a list, it is no longer recognized as a list. How can that be?

you could ask the author @juananton1991 of that extension, if there is a new verison available…

are you talking about the tag or the value?
before taking a screenshot please switch the language to English… thank you…
which extension are you now using? any link? I can’t see any extension specific blocks?

Taifun

Here is the screenshot again in English.

Screenshot

If an entry (value) is not just a text, but a list, this list can be read from memory and used normally. If you export entries and later import them again, the list can no longer be used. The entry (value) is no longer recognized as a list.

Thanks for the tip about the new version. I’ll take a look. My solution on the screenshot doesn’t use an extension. An extension was my first idea to implement the backup function, which didn’t work due to the error. Therefore the attempt without extension to build a backup function. The data is all saved properly again, now there is only the problem with the list (which is no longer recognized as a list).

are you talking about the extension from @juananton1991 ? which error did you get? usually if there is an error, you contact the extension developer to report the issue…

I do not understand and can’t see from your screenshot, how that backup function works… Are you storing in a file? Lists only will look like a list, but are not really lists… You therefore should convert lists into csv rows before storing and converting from csv row into a list again after reading… there are blocks in the list drawer for this…

https://publicdelivery.org/magritte-not-a-pipe/

Taifun

All data is read from the TinyDB and with ; and = are output separately to form a coherent text. The user copies this text and later pastes this text on the new cell phone and the data is transferred back to the TinyDB. The app thus has all the old data on a new device again. Later, the text is simply saved in a file and then saved automatically.

Okay, I’ll try to export the lists as CSV (so they don’t get destroyed). I’ll try it straight away.

a bit cumbersome, isn’t it?
Taifun

Copying the text is only for the testers, the result at the end will be with the file, just like any other app. I just have to get there first.

If you find a better way let me know.

Use the extension…, show us your blocks and nake sure to store the file in shared storage, my guess is, this was your problem. . See also

Taifun

Thanks, I’ll try and show my results later.

I tried to use the extension again. No CSV and Json is generated, so you can’t save anything in a file. Does the extension work for you?

I have now continued to work without extension. Unfortunately, your tip with CSV and the lists didn’t work. This error message is displayed:

The operation list to csv row cannot accept the arguments: , [[Element1, Element2, Element3]]
Note: You will not see another error reported for 5 seconds.

Here are the blocks:

Actually what is your ultimate aim? Saving values in tinydb, then recalling it in different manner then without editing or adding anything want to save in different format it seems. Am I understand it in wrong manner?

My aim is a working backup system for TinyDB. So you should be able to export all data from the TinyDB and import it later on another device and use everything as usual. In the pictures you can see my solution for this. The data export and import works. There is still a problem:

If a list was saved in the TinyDB and this is imported again, the list will be destroyed and can no longer be used. I then tried to implement Taifun’s tip with CSV, but that didn’t work either.

I think you get that issue, because you are using the for each key with value in dictionary loop…

Try to use the for each item in list loop together with the TinyDB tags, inside the loop use the TimyDB.GerValue method for each item (which is a tag) to get the value for each tag

As already mentioned earlier, it would be simpler to use the extension…

Taifun

I’ll try it.

The extension doesn’t work. No CSV or Json is generated. The extension is obsolete. In addition, you get a Java error when reading the file. The extension needs to be updated. That’s why I tried without.

unfortunately you never provided any screenshots while using the extension
my guess is, tthe error is in your blocks…
additionally you also could post the aia file here in this thread, so someone could check…

there actually is no need to generate CSV or JSON… the purpose of a TInyDB backup file is to store it in a safe place and later to import it again

Taifun

Here are the blocks with extension:

Nothing is saved in the file and it cannot be read either because the following error occurs:

I now have a working end result, your tip helped. Here the result:

1 Like

Sorry it’s not in english I hope it’s not a problem.

Ok, this looks like a reasonable bug report for @juananton1991

Great! :+1:

Taifun

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.