在python中检查数据是否是json格式

时间:2012-10-15 06:56:37

标签: python regex json unit-testing

  

这是我的测试类,我正在尝试对我的方法createaccount()

进行单元测试
class CreateAccountTest1(unittest.TestCase):
    def testCreateAccount_1(self,data):
        text = "{'user_id':'abc123','action':'add','names':['hello','world']}"
        regex = !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(text.replace(/"(\\.|   [^"\\])*"/ g, ''))) && eval('(' + text + ')')
        self.assertRegexpMatches(text, reg, 'my msg')
  

createaccount()方法是

class CreateAccountClass():
    def CreateAccount(self,data):

现在我必须检查createaccount()的参数是否是json格式。

如果我通过data=

 { "_id" : "user@gmail.com", "H_id" : "smsg0", "name" : "vish", "passwrd" : "xj45cd" }

它应该检查它是否是json, 我相信这是json格式。 现在在我的方法createaccount()中,它应该检查data是否是json格式, 如果不是,它应该打印错误消息,如果它与regex一起使用?或任何建议, 谢谢,

2 个答案:

答案 0 :(得分:7)

import json
try:
  json.loads(data)
except ValueError:
  print("data was not valid JSON")

答案 1 :(得分:0)

看看this answer。此外,我建议不要使用正则表达式执行此检查,只需使用标准解析器执行此操作并使用json.load检查错误