I want to have a JSON object with the value of an attribute as a string with the character " . For example { "Dimensions" : " 12.0" x 9.6" " }
Obviously this is not possible. How do I do this? With python.
I want to have a JSON object with the value of an attribute as a string with the character " . For example { "Dimensions" : " 12.0" x 9.6" " }
Obviously this is not possible. How do I do this? With python.
JSON.stringify, if using Javascript, will escape it for you.
If not, you can escape them like \" (put a \ in front)
Edit: in Python, try re.escape() or just replace all " with \":
"json string".replace("\"","\\\"");
Isaac is correct.
As for how to do it in python, you need to provide a more detailed explanation of how you are building your JSON
object. For example, let's say you're using no external libraries and are doing it manually (ridiculous, I know), you would do this:
>>> string = "{ \"Dimensions\" : \" 12.0\\\" x 9.6\\\" \" }"
>>> print string
{ "Dimensions" : " 12.0\" x 9.6\" " }
Obviously this is kind of silly. If you are using the standard python json module, try this:
from json import JSONEncoder
encoder = JSONEncoder()
string = encoder.encode({ "Dimensions":" 12.0\" x 9.6\" " })
>>> print string
{"Dimensions": " 12.0\" x 9.6\" "}
which is the desired result.
Python has two symbols you can use to specify string literals, the single quote and the double quote.
For example: my_string = "I'm home!"
Or, more relevant to you,
>>> string = '{ "Dimensions" : " 12.0\\\" x 9.6\\\" " }'
>>> print string
{ "Dimensions" : " 12.0\" x 9.6\" " }
You can also prefix the string with 'r' to specify it is a raw string, so backslash escaped sequences are not processed, making it cleaner.
>>> string = r'{ "Dimensions" : " 12.0\" x 9.6\" " }'
>>> print string
{ "Dimensions" : " 12.0\" x 9.6\" " }