Reputation: 35
[{"Name": "Luke Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Darth Vader", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Obi-Wan Kenobi", "Affiliation": "Jedi", "Allegiance": "TO THE REPUBLIC, TO DEMOCRACY!"}, {"Name": "Anakin Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Yoda", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Palpatine", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Qui-Gon Jinn", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Jar Jar Binks", "Affiliation": "N/A", "Allegiance": "Possible Sith"}, {"Name": "Darth Maul", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Mace Windu", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Ki-Adi-Mundi", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Kit Fisto", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Eeth Koth", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Plo Koon", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Dooku", "Affiliation": "Sith", "Allegiance": ""}]
the output im getting above is what im getting with the code:
data = []
with open('starwrs.csv') as f:
for row in csv.DictReader(f):
data.append(row)
json_data = json.dumps(data)
return json_data
but how do i get it so that it looks like actual json data like directly under eachother etc and not the string that im getting
[{"Name": "Luke Skywalker", "Affiliation": "Jedi", "Allegiance": ""},
{"Name": "Darth Vader", "Affiliation": "Sith", "Allegiance": ""}
Upvotes: 1
Views: 69
Reputation: 113
Use json.dumps(json_object, indent=2)...
import json
json_data='[{"Name": "Luke Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Darth Vader", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Obi-Wan Kenobi", "Affiliation": "Jedi", "Allegiance": "TO THE REPUBLIC, TO DEMOCRACY!"}, {"Name": "Anakin Skywalker", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Yoda", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Palpatine", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Qui-Gon Jinn", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Jar Jar Binks", "Affiliation": "N/A", "Allegiance": "Possible Sith"}, {"Name": "Darth Maul", "Affiliation": "Sith", "Allegiance": ""}, {"Name": "Mace Windu", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Ki-Adi-Mundi", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Kit Fisto", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Eeth Koth", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Plo Koon", "Affiliation": "Jedi", "Allegiance": ""}, {"Name": "Dooku", "Affiliation": "Sith", "Allegiance": ""}]'
json_object = json.loads(json_data)
json_formatted_str = json.dumps(json_object, indent=2)
print(json_formatted_str)
Upvotes: 1
Reputation: 76
I guess you want to pretty print the json. If that's the case use this
json_data = json.dumps(data, indent=4)
print(json_data)
The indent in json.dumps helps to create the indentation which makes json look formatted
[
{
"Name": "Luke Skywalker",
"Affiliation": "Jedi",
"Allegiance": ""
},
{
"Name": "Darth Vader",
"Affiliation": "Sith",
"Allegiance": ""
},
{
"Name": "Obi-Wan Kenobi",
"Affiliation": "Jedi",
"Allegiance": "TO THE REPUBLIC, TO DEMOCRACY!"
},
{
"Name": "Anakin Skywalker",
"Affiliation": "Jedi",
"Allegiance": ""
},
{
"Name": "Yoda",
"Affiliation": "Jedi",
"Allegiance": ""
},
{
"Name": "Palpatine",
"Affiliation": "Sith",
"Allegiance": ""
},
{
"Name": "Qui-Gon Jinn",
"Affiliation": "Jedi",
"Allegiance": ""
},
{
"Name": "Jar Jar Binks",
"Affiliation": "N/A",
"Allegiance": "Possible Sith"
},
{
"Name": "Darth Maul",
"Affiliation": "Sith",
"Allegiance": ""
},
{
"Name": "Mace Windu",
"Affiliation": "Jedi",
"Allegiance": ""
},
{
"Name": "Ki-Adi-Mundi",
"Affiliation": "Jedi",
"Allegiance": ""
},
{
"Name": "Kit Fisto",
"Affiliation": "Jedi",
"Allegiance": ""
},
{
"Name": "Eeth Koth",
"Affiliation": "Jedi",
"Allegiance": ""
},
{
"Name": "Plo Koon",
"Affiliation": "Jedi",
"Allegiance": ""
},
{
"Name": "Dooku",
"Affiliation": "Sith",
"Allegiance": ""
}
]
Upvotes: 0