How to decode an object writed in php in python

Viewed 37

I have an object returned from php in the following way

{"product_specification"=>[{"key"=>"Number of Contents in Sales Package", "value"=>"Pack of 3"}, {"key"=>"Fabric", "value"=>"Cotton Lycra"}, {"key"=>"Type", "value"=>"Cycling Shorts"}, {"key"=>"Pattern", "value"=>"Solid"}, {"key"=>"Ideal For", "value"=>"Women's"}, {"value"=>"Gentle Machine Wash in Lukewarm Water, Do Not Bleach"}, {"key"=>"Style Code", "value"=>"ALTHT_3P_21"}, {"value"=>"3 shorts"}]}

I tried to use json.loads but it doesn't work Any ideas how I could use the data from it?

1 Answers
import json

object_str = """{"product_specification"=>[{"key"=>"Number of Contents in Sales Package", "value"=>"Pack of 3"}, {"key"=>"Fabric", "value"=>"Cotton Lycra"}, {"key"=>"Type", "value"=>"Cycling Shorts"}, {"key"=>"Pattern", "value"=>"Solid"}, {"key"=>"Ideal For", "value"=>"Women's"}, {"value"=>"Gentle Machine Wash in Lukewarm Water, Do Not Bleach"}, {"key"=>"Style Code", "value"=>"ALTHT_3P_21"}, {"value"=>"3 shorts"}]}"""
object_str = object_str.replace('"=>"','":"').replace('"=>','":')
object_json = json.loads(object_str)
print(object_json)

Explanation:

  1. Convert your php key into a python doc string
  2. replace the php symbols for dicts/objects with python symbols.
  3. use json loads to convert docstring into dict/object.

if you need help converting your php example into a python docstring try this maybe:

object_str = '"""'+phpobject+'"""'
Related