• 测试开发到底是个什么鬼

  • 请教一下,这个addict支持python 2的utf-8么?
    {'name_1': {u'msg': u'ok', u'code': u'0', u'data': {u'regionPath': u',root000000,c10e92a6-c090-4955-bdab-63eba5965c0a,', u'leaf': True, u'regionStatus': 0, u'dataVersion': 328, u'regionCodeStyle': u'none', u'indexCode': u'c10e92a6-c090-4955-bdab-63eba5965c0a', u'regionId': u'c10e92a6-c090-4955-bdab-63eba5965c0a', u'parentIndexCode': u'root000000', u'regionType': 0, u'regionCode': u'', u'parentId': u'root000000', u'disOrder': 91, u'regionDesc': u'', u'regionName': u'test1'}}}
    这样的要如何处理?

  • if __name__ == '__main__':
    all_list = ["1", "2", "3", "4", "5", {"test1": "1", "test2": "2", "test3": "3", "test9": [{"test6": "6"}, {"test7": "7"}, {"test8": "8"}], "test4": {"x": "9", "y": "0"}, "test5": "5"}]
    check_list = ["3", "5", {"test3": "3", "test4": {"y": "0"}, "test9": [{"test7": "7"}]}]
    print compare_json(all_list, check_list)
  • 目前我也在做类似的内容,字典和列表互相嵌套,想直接作对比,看两者是否是包含关系。主要参考了你的代码,但觉得自己写的内容,过于繁琐,想了解下你后续的探索。

    代码如下:

    def compare_json(responce_data, check_data):
    if isinstance(responce_data, dict) and isinstance(check_data, dict):
    compare_json = compare_dict(responce_data, check_data)
    elif isinstance(responce_data, list) and isinstance(check_data, list):
    compare_json = compare_list(responce_data, check_data)
    else:
    compare_json = False
    print "Please check responce_data: %s, check_data: %s. They are not dict or list." % (responce_data, check_data)
    return compare_json
    if compare_json:
    print "responce_data: %s\ncheck_data: %s\nCheck Success!" % (responce_data, check_data)
    else:
    print "responce_data: %s\ncheck_data: %s\nCheck Fail!" % (responce_data, check_data)

    def compare_dict(all_dict, check_dict):
    global compare_dict_status
    for (check_key, check_value) in check_dict.items():
    for (all_key, all_value) in all_dict.items():
    compare_dict_status = False
    if operator.eq(check_key, all_key):
    if isinstance(check_value, dict) and isinstance(all_value, dict):
    #print "Dict::Dict check_value is %s, all_value is %s" % (check_value, all_value)
    compare_dict_status = compare_dict(all_value, check_value)
    if compare_dict_status:
    break
    elif isinstance(check_value, list) and isinstance(all_value, list):
    #print "List::List check_item is %s, all_item is %s" % (check_value, all_value)
    compare_dict_status = compare_list(all_value, check_value)
    if compare_dict_status:
    break
    else:
    if operator.eq(check_value, all_value):
    print "%s:%s is in the %s" % (check_key, check_value, all_dict)
    compare_dict_status = True
    break
    if not compare_dict_status:
    print "Can't find %s:%s in the %s" % (check_key, check_value, all_dict)
    return compare_dict_status
    return compare_dict_status

    def compare_list(all_list, check_list):
    global compare_list_status
    for check_item in check_list:
    for all_item in all_list:
    compare_list_status = False
    if isinstance(check_item, list) and isinstance(all_item, list):
    compare_list_status = compare_list(all_item, check_item)
    #print "List::List check_item is %s, all_item is %s, compare_list_status is %s" % (check_item, all_item, compare_list_status)
    if compare_list_status:
    break
    elif isinstance(check_item, dict) and isinstance(all_item, dict):
    compare_list_status = compare_dict(all_item, check_item)
    #print "Dict::Dict check_item is %s, all_item is %s, compare_list_status is %s" % (check_item, all_item, compare_list_status)
    if compare_list_status:
    break
    else:
    if operator.eq(check_item, all_item):
    print "%s is in the %s" % (check_item, all_list)
    compare_list_status = True
    break
    if not compare_list_status:
    print "Can't find %s in the %s" % (check_item, all_list)
    return compare_list_status
    return compare_list_status

向前