在python中检查数据是否为json格式
这是我的测试类,我正在尝试对我的createaccount方法进行单元测试 createaccount方法是 现在我必须检查createaccount的参数是否为json格式 如果我传递数据= 它应该检查它是否是json, 我确信这是json格式的。 现在在我的方法createaccount中,它应该检查数据是否为json格式, 如果不是,它应该打印错误消息,如果它与正则表达式一起工作?或任何建议,,在python中检查数据是否为json格式,python,regex,json,unit-testing,Python,Regex,Json,Unit Testing,这是我的测试类,我正在尝试对我的createaccount方法进行单元测试 createaccount方法是 现在我必须检查createaccount的参数是否为json格式 如果我传递数据= 它应该检查它是否是json, 我确信这是json格式的。 现在在我的方法createaccount中,它应该检查数据是否为json格式, 如果不是,它应该打印错误消息,如果它与正则表达式一起工作?或任何建议,, 谢谢,请看。另外,我建议不要使用正则表达式执行此检查,只需使用标准解析器执行此检查,并使用查看
谢谢,请看。另外,我建议不要使用正则表达式执行此检查,只需使用标准解析器执行此检查,并使用查看来检查错误。另外,我建议不要使用正则表达式执行此检查,只需使用标准解析器进行检查,并使用检查错误。您可以尝试解析json,如果异常无效,则捕获异常。@RudolfMühlbauer:请添加注释作为答案,如果它们是答案而不是评论。@AlexReynolds在我看来,鲁道夫的建议是在提出更多解决方案之前先尝试一下…@AlexReynolds,你是对的。但是,根据我的心情,我错过了很多RTFM/你在这里的经历。因此,我使用评论来给出提示,而不是发布4行代码,这些代码可以很容易地在web、书籍、教程上找到……问题是,当发布这样一个问题时,10个人启动google或python shell来测试他们的答案。这比OP自己尝试弄明白要花费更多的时间,并且对OP有学习效果。您可以尝试解析json,如果它无效,则捕获异常。@RudolfMühlbauer:请添加注释作为答案,如果它们是答案而不是评论。@AlexReynolds在我看来,鲁道夫的建议是在提出更多解决方案之前先尝试一下…@AlexReynolds,你是对的。但是,根据我的心情,我错过了很多RTFM/你在这里的经历。因此,我使用评论来给出提示,而不是发布4行代码,这些代码可以很容易地在web、书籍、教程上找到……问题是,当发布这样一个问题时,10个人启动google或python shell来测试他们的答案。这比OP自己尝试解决问题要耗费更多的时间,并且对OP有学习效果。JSON是不规则的,因此Python正则表达式基本上无法验证JSON。@Vishruth:你是什么意思?此代码可以正确地验证给定字符串数据是否包含有效的JSON。它是否匹配您期望的数据格式是另一个问题,与JSON验证本身无关。我上面的评论是想说正则表达式方法是徒劳的,你需要使用解析器来代替它。@Tim Pietzcker:对不起!,是的,它工作得很好。我在用另一种方式做!这JSON是不规则的,因此Python正则表达式基本上无法验证JSON。@Vishruth:你是什么意思?此代码可以正确地验证给定字符串数据是否包含有效的JSON。它是否匹配您期望的数据格式是另一个问题,与JSON验证本身无关。我上面的评论是想说正则表达式方法是徒劳的,你需要使用解析器来代替它。@Tim Pietzcker:对不起!,是的,它工作得很好。我在用另一种方式做!
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')
class CreateAccountClass():
def CreateAccount(self,data):
{ "_id" : "user@gmail.com", "H_id" : "smsg0", "name" : "vish", "passwrd" : "xj45cd" }
import json
try:
json.loads(data)
except ValueError:
print("data was not valid JSON")