'How to add each list entry as an entry to a json file in Python?
I have the following list printed iteratively:
/home/onur/PycharmProjects/file-tagging/venv/bin/activate.ps1
/home/onur/PycharmProjects/file-tagging/venv/bin/f2py3
/home/onur/PycharmProjects/file-tagging/venv/bin/activate.fish
/home/onur/PycharmProjects/file-tagging/venv/bin/activate.csh
/home/onur/PycharmProjects/file-tagging/venv/bin/f2py
/home/onur/PycharmProjects/file-tagging/venv/bin/python3
/home/onur/PycharmProjects/file-tagging/venv/bin/pip
/home/onur/PycharmProjects/file-tagging/venv/bin/python3.9
/home/onur/PycharmProjects/file-tagging/venv/bin/activate_this.py
/home/onur/PycharmProjects/file-tagging/venv/bin/wheel3
/home/onur/PycharmProjects/file-tagging/venv/bin/python
/home/onur/PycharmProjects/file-tagging/venv/bin/wheel-3.9
/home/onur/PycharmProjects/file-tagging/venv/bin/pip-3.9
/home/onur/PycharmProjects/file-tagging/venv/bin/pip3.9
/home/onur/PycharmProjects/file-tagging/venv/bin/wheel
/home/onur/PycharmProjects/file-tagging/venv/bin/activate
/home/onur/PycharmProjects/file-tagging/venv/pyvenv.cfg
/home/onur/PycharmProjects/file-tagging/log.json
/home/onur/PycharmProjects/file-tagging/main.py
/home/onur/PycharmProjects/file-tagging/hello_world.dat
/home/onur/PycharmProjects/file-tagging/b.exe
/home/onur/PycharmProjects/file-tagging/world_builder.spec
/home/onur/PycharmProjects/file-tagging/.idea/inspectionProfiles/Project_Default.xml
/home/onur/PycharmProjects/file-tagging/.idea/inspectionProfiles/profiles_settings.xml
/home/onur/PycharmProjects/file-tagging/.idea/.gitignore
/home/onur/PycharmProjects/file-tagging/.idea/modules.xml
/home/onur/PycharmProjects/file-tagging/.idea/file-tagging.iml
/home/onur/PycharmProjects/file-tagging/.idea/misc.xml
/home/onur/PycharmProjects/file-tagging/.idea/workspace.xml
/home/onur/PycharmProjects/file-tagging/content-log.txt
I am trying to save these files to a JSON entry like this:
data_entry = {"path": "/home/onur/PycharmProjects/file-tagging/.idea/workspace.xml", "tags": []},
Every entry will have a tags object, which will be an empty list. This is because a single path could have many associated tags.
My goal is to initialize logs.json with every single element in the path lists each with a tag object containing an empty list. Then I want to be able to access this list.
The following is my attempt at populating path with every entry in the list but it didn't work:
import json
data_entry = {"path": "", "tags": []},
with open('log.json', 'w+') as read_file:
for i in data_list:
print(i)
json.dump(i,read_file, indent=1)
Where am I going wrong?
Solution 1:[1]
path_list = []
for i in data_list.splitlines():
data_entry = {"path": i, "tags": []}
path_list.append(data_entry)
with open('log.json', 'w+') as read_file:
json.dump(path_list, read_file, indent=1)
output log.json
[
{
"path": "/home/onur/PycharmProjects/file-tagging/venv/bin/activate.ps1",
"tags": []
},
{
"path": "/home/onur/PycharmProjects/file-tagging/venv/bin/f2py3",
"tags": []
},
{
"path": "/home/onur/PycharmProjects/file-tagging/venv/bin/activate.fish",
"tags": []
},
{
"path": "/home/onur/PycharmProjects/file-tagging/venv/bin/activate.csh",
"tags": []
}...]
or you can go with
{
"/home/onur/PycharmProjects/file-tagging/venv/bin/activate.ps1": tags[],
"/home/onur/PycharmProjects/file-tagging/venv/bin/f2py3": tags[],
...
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Poonam Adhav |
