can you show how you get your data? Your code should work just fine with list of dicts as your sample data. It looks like your data is not what you think - i.e. obviously you scrape them from a website and did not parse correctly. At least not when you try to write them to a file.
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs