Python Json Dumps

i have the following string, need to turn it into a list without u'':

my_str = "[{u'name': u'squats', u'wrs': [[u'99', 8]], u'id': 2}]"

i can get rid of " by using

import ast
str_w_quotes = ast.literal_eval(my_str)

then i do:

import json
json.dumps(str_w_quotes)

and get

[{\"id\": 2, \"name\": \"squats\", \"wrs\": [[\"55\", 9]]}]

Is there a way to get rid of backslashes? the goal is:

[{"id": 2, "name": "squats", "wrs": [["55", 9]]}]
6

This works but doesn't seem too elegant

import json
json.dumps(json.JSONDecoder().decode(str_w_quotes))

json.dumps thinks that the " is part of a the string, not part of the json formatting.

import json
json.dumps(json.load(str_w_quotes))

should give you:

 [{"id": 2, "name": "squats", "wrs": [["55", 9]]}]
2

You don't dump your string as JSON, rather you load your string as JSON.

import json
json.loads(str_w_quotes)

Your string is already in JSON format. You do not want to dump it as JSON again.

>>> "[{\"id\": 2, \"name\": \"squats\", \"wrs\": [[\"55\", 9]]}]".replace('\\"',"\"")
'[{"id": 2, "name": "squats", "wrs": [["55", 9]]}]'

note that you could just do this on the original string

>>> "[{u'name': u'squats', u'wrs': [[u'99', 8]], u'id': 2}]".replace("u\'","\'")
"[{'name': 'squats', 'wrs': [['99', 8]], 'id': 2}]"
David Miller

David Miller

Executive Financial & Market Analyst

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.

Share this article
Twitter Facebook Pinterest