(Apr-21-2022, 05:17 PM)Bubu93200 Wrote:(Apr-21-2022, 05:08 PM)deanhystad Wrote: I do not think you can generate that output using json.dump(). If you want to know if it is allowed, try it yourself. Create a file using a text editor and try to load it.
If I can load it with json library, it's allowed.
Ok. I'll try
Thanks for your help
(Apr-21-2022, 05:17 PM)Bubu93200 Wrote:(Apr-21-2022, 05:08 PM)deanhystad Wrote: I do not think you can generate that output using json.dump(). If you want to know if it is allowed, try it yourself. Create a file using a text editor and try to load it.
If I can load it with json library, it's allowed.
Ok. I'll try
Thanks for your help
I solved my problem.
I exhibit my code for other people who can have the same problem.
I found code to have :
- compact file
- file easily readable by human
- file uses append mode so its very quick to open et upgrade file. Its very usable for very very long files (log files)
- file is breakable in several files
- we can easily convert file to json file
- we can add index or datation on records (add keys as "time", "date", "index" if you want)
- records can be differents on each line
And to do this, I use JSONLINES format (I didn't know this format)
import jsonlines def writeJsonlines(fileName, dictionary): """ https://jsonlines.org/ use import jsonlines """ try: with jsonlines.open(fileName, "a") as jsonlinesfile: jsonlinesfile.write(dictionary) except IOError: print("writeJsonlines : failed to open file") def readJsonlines(fileName): """ https://jsonlines.org/ use import jsonlines """ try: with jsonlines.open(fileName, 'r') as jsonlfile: jsonl_list = list(jsonlfile) print('readjsonlines : ', jsonl_list, "\n") return jsonl_list except IOError: print("readJsonlines : failed to open file") return NoneFile output is as :
Output:{"surname": "xxx", "forename": "jean", "age": 24},
{"surname": "yyy", "forename": "paul", "age": 31},
{"surname": "zzz", "forename": "julia", "age": 28},
{"surname": "aaa", "forename": "Paul", "age": 40},
{"name": "bruno", "age": 46}
Very usefull, flexible. great