ujson_loads.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. try:
  2. import ujson as json
  3. except ImportError:
  4. try:
  5. import json
  6. except ImportError:
  7. print("SKIP")
  8. raise SystemExit
  9. def my_print(o):
  10. if isinstance(o, dict):
  11. print('sorted dict', sorted(o.items()))
  12. else:
  13. print(o)
  14. my_print(json.loads('null'))
  15. my_print(json.loads('false'))
  16. my_print(json.loads('true'))
  17. my_print(json.loads('1'))
  18. my_print(json.loads('-2'))
  19. my_print(json.loads('"abc\\u0064e"'))
  20. my_print(json.loads('[]'))
  21. my_print(json.loads('[null]'))
  22. my_print(json.loads('[null,false,true]'))
  23. my_print(json.loads(' [ null , false , true ] '))
  24. my_print(json.loads('{}'))
  25. my_print(json.loads('{"a":true}'))
  26. my_print(json.loads('{"a":null, "b":false, "c":true}'))
  27. my_print(json.loads('{"a":[], "b":[1], "c":{"3":4}}'))
  28. my_print(json.loads('"abc\\bdef"'))
  29. my_print(json.loads('"abc\\fdef"'))
  30. my_print(json.loads('"abc\\ndef"'))
  31. my_print(json.loads('"abc\\rdef"'))
  32. my_print(json.loads('"abc\\tdef"'))
  33. my_print(json.loads('"abc\\uabcd"'))
  34. # whitespace handling
  35. my_print(json.loads('{\n\t"a":[]\r\n, "b":[1], "c":{"3":4} \n\r\t\r\r\r\n}'))
  36. # loading nothing should raise exception
  37. try:
  38. json.loads('')
  39. except ValueError:
  40. print('ValueError')
  41. # string which is not closed
  42. try:
  43. my_print(json.loads('"abc'))
  44. except ValueError:
  45. print('ValueError')
  46. # unaccompanied closing brace
  47. try:
  48. my_print(json.loads(']'))
  49. except ValueError:
  50. print('ValueError')
  51. # unspecified object type
  52. try:
  53. my_print(json.loads('a'))
  54. except ValueError:
  55. print('ValueError')
  56. # bad property name
  57. try:
  58. my_print(json.loads('{{}:"abc"}'))
  59. except ValueError:
  60. print('ValueError')
  61. # unexpected characters after white space
  62. try:
  63. my_print(json.loads('[null] a'))
  64. except ValueError:
  65. print('ValueError')