Advertisement
Guest User

Untitled

a guest
May 29th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.43 KB | None | 0 0
  1. #-*- coding: utf-8 -*-
  2.  
  3. def isType(s):
  4.     if s[0] == "[" and s[-1] == "]":
  5.         return list
  6.     if s[0] == "{" and s[-1] == "}":
  7.         return dict
  8.     if s[0] == "\"" and s[-1] == "\"":
  9.         return str
  10.     else:
  11.         return int
  12.  
  13.  
  14. def splitStr(s):
  15.     k = []
  16.     temp = []
  17.     squer = 0
  18.     curly = 0
  19.     strl =  False
  20.     for i in s:
  21.         if ", " == i:
  22.             if squer == 0 and curly == 0 and strl == False:
  23.                 k.append(''.join(temp))
  24.                 temp = []
  25.                 continue
  26.         temp.append(i)
  27.         if "[" == i:
  28.             squer += 1
  29.         if "]" == i:
  30.             squer -= 1
  31.             if squer == 0 and curly == 0 and strl == 0:
  32.                 k.append(''.join(temp))
  33.                 temp = []
  34.         if "{" == i:
  35.             curly += 1
  36.         if "}" == i:
  37.             curly -= 1
  38.             if squer == 0 and curly == 0 and strl == 0:
  39.                 k.append(''.join(temp))
  40.                 temp = []
  41.         if "\"" == i:
  42.             strl = True
  43.             continue
  44.             if strl == True:
  45.                 k.append(''.join(temp))
  46.                 temp = []
  47.                 strl = False
  48.             continue
  49.     if len(temp) != 0:
  50.         k.append(''.join(temp))
  51.     return k
  52.  
  53.  
  54. def from_json_toList(s):
  55.     print s
  56.     temp = splitStr(s)
  57.     print temp
  58.     k = []
  59.     for i in temp:
  60.         if i[0] == "[":
  61.             k.append(from_json_toList(i[1:-1]))
  62.             continue
  63.         if i[0] == "{":
  64.             k.append(from_json_toDict(i[1:-1]))
  65.             continue
  66.         if isType(i) == str:
  67.             k.append(str(i[1:-1]))
  68.             continue
  69.         else:
  70.             k.append(int(i))
  71.             continue
  72.         temp.append(i)
  73.         temp.append(", ")
  74.     return k
  75.  
  76. def from_json_toDict(s):
  77.     s = s.split(", ")
  78.     print s
  79.     k = []
  80.     d = {}
  81.     temp = []
  82.     count = 0
  83.     sms = []
  84.     flagList = False
  85.     for i in s:
  86.         if "[" in i:
  87.             temp.append(i)
  88.             temp.append(', ')
  89.             flagList = True
  90.             count += 1
  91.             continue
  92.         if flagList:
  93.             temp.append(i)
  94.             if "]" in i:
  95.                 count -= 1
  96.             if count == 0:
  97.                 sms.append(''.join(temp))
  98.                 flagList = False
  99.                 continue
  100.             temp.append(', ')
  101.         if not flagList:
  102.             sms.append(i)
  103.    
  104.     for i in sms:
  105.         k.append(i.split(" : "))
  106.     for j in k:
  107.         k = j[0]
  108.         v = j[1]
  109.         if isType(v) == dict:
  110.             value = from_json_toDict(v[1:-1])
  111.         elif isType(v) == list:
  112.             value = from_json_toList(v[1:-1])
  113.         elif isType(v) == int :
  114.             value = int(v)
  115.         else:
  116.             value = v[1:-1]
  117.         if isType(k) == int:
  118.             key = int(k)
  119.         else:
  120.             key = k[1:-1]
  121.         d[key] = value
  122.     return d
  123.  
  124. def from_json(s):
  125.     if isType(s) == list:
  126.         return from_json_toList(s[1:-1])
  127.     """if isType(s) == dict:
  128.        return from_json_toDict(s[1:-1])
  129.    if isType(s) == str:
  130.        return s[1:-1]
  131.    else:
  132.        return int(s)"""
  133.  
  134. def main():
  135.     print from_json('"w"')
  136.     print from_json('1')
  137.     print from_json('{"w" : [1, 2, 3], "q" : {"a" : 1} }')
  138.     print from_json('{"w" : 1, "1" : 2}')
  139.     print from_json('["er", 3, "43", ["ew", [2, 3, 3]], "e", 4]')
  140.  
  141. if __name__ == "__main__":
  142.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement