Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #-*- coding: utf-8 -*-
- def isType(s):
- if s[0] == "[" and s[-1] == "]":
- return list
- if s[0] == "{" and s[-1] == "}":
- return dict
- if s[0] == "\"" and s[-1] == "\"":
- return str
- else:
- return int
- def splitStr(s):
- k = []
- temp = []
- squer = 0
- curly = 0
- strl = False
- for i in s:
- if ", " == i:
- if squer == 0 and curly == 0 and strl == False:
- k.append(''.join(temp))
- temp = []
- continue
- temp.append(i)
- if "[" == i:
- squer += 1
- if "]" == i:
- squer -= 1
- if squer == 0 and curly == 0 and strl == 0:
- k.append(''.join(temp))
- temp = []
- if "{" == i:
- curly += 1
- if "}" == i:
- curly -= 1
- if squer == 0 and curly == 0 and strl == 0:
- k.append(''.join(temp))
- temp = []
- if "\"" == i:
- strl = True
- continue
- if strl == True:
- k.append(''.join(temp))
- temp = []
- strl = False
- continue
- if len(temp) != 0:
- k.append(''.join(temp))
- return k
- def from_json_toList(s):
- print s
- temp = splitStr(s)
- print temp
- k = []
- for i in temp:
- if i[0] == "[":
- k.append(from_json_toList(i[1:-1]))
- continue
- if i[0] == "{":
- k.append(from_json_toDict(i[1:-1]))
- continue
- if isType(i) == str:
- k.append(str(i[1:-1]))
- continue
- else:
- k.append(int(i))
- continue
- temp.append(i)
- temp.append(", ")
- return k
- def from_json_toDict(s):
- s = s.split(", ")
- print s
- k = []
- d = {}
- temp = []
- count = 0
- sms = []
- flagList = False
- for i in s:
- if "[" in i:
- temp.append(i)
- temp.append(', ')
- flagList = True
- count += 1
- continue
- if flagList:
- temp.append(i)
- if "]" in i:
- count -= 1
- if count == 0:
- sms.append(''.join(temp))
- flagList = False
- continue
- temp.append(', ')
- if not flagList:
- sms.append(i)
- for i in sms:
- k.append(i.split(" : "))
- for j in k:
- k = j[0]
- v = j[1]
- if isType(v) == dict:
- value = from_json_toDict(v[1:-1])
- elif isType(v) == list:
- value = from_json_toList(v[1:-1])
- elif isType(v) == int :
- value = int(v)
- else:
- value = v[1:-1]
- if isType(k) == int:
- key = int(k)
- else:
- key = k[1:-1]
- d[key] = value
- return d
- def from_json(s):
- if isType(s) == list:
- return from_json_toList(s[1:-1])
- """if isType(s) == dict:
- return from_json_toDict(s[1:-1])
- if isType(s) == str:
- return s[1:-1]
- else:
- return int(s)"""
- def main():
- print from_json('"w"')
- print from_json('1')
- print from_json('{"w" : [1, 2, 3], "q" : {"a" : 1} }')
- print from_json('{"w" : 1, "1" : 2}')
- print from_json('["er", 3, "43", ["ew", [2, 3, 3]], "e", 4]')
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement