Convert raw string to JSON object in python2.7

29,135

Solution 1

Try json.loads() to load (deserialize) a JSON string into a Python dict:

>>> import json
>>> s = '{"max":28, "min":18, "custom":[{"id":"12345", "name":"test_pur"}]}'
>>> data = json.loads(s)
>>> print data["max"]
28

Solution 2

Your code is buggy. You should use json.loads() and not json.dumps() (if I understand your question right). Here you are converting a raw string to a JSON string. I thing you want to convert a JSON string to an JSON object no ?

Share:
29,135
Aditya Patel
Author by

Aditya Patel

SOreadytohelp

Updated on July 29, 2022

Comments

  • Aditya Patel
    Aditya Patel almost 2 years

    I am querying a PostgreSQL server to get data and a particular json object actually gets returned as a string. I tried following but its not giving the correct output: (It's ipython outputs)

    test
    Out[103]: '{"max"=>28, "min"=>18, "custom"=>[{"id"=>"12345","name"=>"test_pur"}]}'
    In[104]: test.replace("=>",":")
    Out[104]: '{"max":28, "min":18, "custom":[{"id":"12345", "name":"test_pur"}]}'
    In[105]: j_obj = json.dumps(test)
    In[106]: j_obj
    Out[106]: '"{\\"max\\"=>28, \\"min\\"=>18, \\"custom\\"=>[{\\"id\\"=>\\"12345\\", \\"name\\"=>\\"test_pur\\"}]}"'
    

    How can i convert a string to json by recognizing the ":" symbol?

    When i am trying "json.loads" . Following are the errors:

    Traceback (most recent call last):
      File "/Library/Python/2.7/site-packages/IPython/core/interactiveshell.py", line 3035, in run_code
        exec(code_obj, self.user_global_ns, self.user_ns)
      File "<ipython-input-12-a7562191decf>", line 1, in <module>
        data = json.loads(temp)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
        return _default_decoder.decode(s)
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 365, in decode
        obj, end = self.raw_decode(s, idx=_w(s, 0).end())
      File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 381, in raw_decode
        obj, end = self.scan_once(s, idx)
    ValueError: Expecting : delimiter: line 1 column 11 (char 10)