6

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)
1

2 Answers 2

14

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
Sign up to request clarification or add additional context in comments.

2 Comments

+1, also python usually has very good documentation. Might be worth reading here
note that s needs to be single-quoted, not double-quoted
1

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 ?

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.