字典基础知识
基础类型: key:value 也就是键值:值
同时,每个键值用”,”进行分割,同时用花括号{}括起来.
格式大概如下:
params = {
'sysCode': 'test',
'serviceCode': route_main_type,
'pageNum': page_num,
'pageSize': 200
}
查询字典中的值:
print(params['sysCode'])
print(params)
运行结果:
字典的修改(更新和添加):
params['pageSize'] = 300
params['pageList'] = "Yss"
print(params)
运行结果:
字典的删除:
del params['Name'] # 删除键是'Name'的条目
params.clear() # 清空字典所有条目
del params # 删除字典
注意:1.键值不可变,可以用数字,字符串或元组充当,用列表就不行.
以下是一些相关的字典函数:
序号 | 函数及描述 |
1 | cmp(dict1, dict2) |
2 | len(dict) |
3 | str(dict) |
4 | type(variable) |
Python字典包含了以下内置方法:
序号 | 函数及描述 |
1 | dict.clear() |
2 | dict.copy() |
3 | dict.fromkeys(seq[, val]) |
4 | dict.get(key, default=None) |
5 | dict.has_key(key) |
6 | dict.items() |
7 | dict.keys() |
8 | dict.setdefault(key, default=None) |
9 | dict.update(dict2) |
10 | dict.values() |
11 | pop(key[,default]) |
12 | popitem() |
字典的嵌套以及一些相关应用
字典内部可以嵌套字典,列表等数据,我们添加数据时,需要,进行一些列表和字典的操作.
一些相关操作:
#建立一个空字典
quality_json = {}
#空字典中添加数据和列表
quality_json["topic"] = ""
quality_json["followers"] = []
#列表中添加字典,或者字典中添加字典的方法,相当于用列表的append进行一个添加(api获取时)
quality_json["columnRules"] = []
quality_columnrules = {}
rules_template = rules_template.encode("utf-8")
quality_columnrules["ruleId"] = my_config.rule_id.get(rules_template)
my_config.rule_id_dict().get(rules_template)
quality_columnrules["source"] = []
source1 = {}
source1["name"] = "${Table1}"
quality_columnrules["source"].append(source1)
quality_columnrules["input"] = []
quality_columnrules["warnLevelExpression"] = {}
quality_columnrules["warnLevelExpression"]["L2"] = alarm_conditions
quality_json["columnRules"].append(quality_columnrules)
以下是一段示例代码:
def get_column_quality_json(job_name,scan_conditions,rules_classify,rules_template,rules_template_english,alarm_conditions,exploring_objects):
job_name = job_name.lower()
rules_classify = rules_classify.encode("utf-8")
if rules_classify == "完整性":
valuse1="CMP"
valuse2="INTEGRITY"
elif rules_classify == "有效性":
valuse2="VALID"
values1="VAL"
else :
print("没有对应的规则分类")
job_name = job_name
job_tem = job_name[0:3]
job_name_work =job_name + "_"+valuse1+"_" + rules_template_english.lower()
# 表行描述
quality_json = {}
quality_json["topic"] = ""
quality_json["followers"] = []
quality_json["type"] = "CONNECTOR"
quality_json["name"] = job_name_work
# conditions 条件判断时 FULL为全表扫描 scanCondition值为"" CONDITION为条件扫描
if scan_conditions!=0 or scan_conditions!="":
scan_conditions_values=scan_conditions
scan_conditions="CONDITION"
quality_json["scanType"] = scan_conditions
quality_json["scanCondition"] =scan_conditions_values
else :
quality_json["scanType"] = "FULL"
quality_json["scanCondition"] =""
# 规则行描述
quality_json["columnRules"] = []
quality_columnrules = {}
quality_columnrules["isBlock"] = False
quality_columnrules["errDataCount"] = -1
# 规则粒度填写 CROSS_COLUMN 跨字段 COLUMN 字段 TABLE 表
quality_columnrules["column"] = exploring_objects
quality_columnrules["level"] = "COLUMN"
# 表一字段填写(探查对象)
#quality_columnrules["column"] = pk_column
#规则分类 CONSISTENT 一致性 INTEGRITY 完整性
quality_columnrules["dimension"] = valuse2
rules_template = rules_template.encode("utf-8")
quality_columnrules["ruleId"] = my_config.rule_id.get(rules_template)
#quality_columnrules["ruleId"] = my_config.rule_id_dict().get(rules_template)
quality_columnrules["type"] = "SYSTEM"
quality_columnrules["ruleName"] = rules_template
quality_columnrules["source"] = []
source1 = {}
source1["name"] = "${Table1}"
source1["tableCode"] = "${Table1}"
source1["columnCode"] = ["${Column1}"]
# quality_columnrules["source"].append(source1)
quality_columnrules["input"] = []
quality_columnrules["isErrData"] = "false"
quality_columnrules["warnLevelExpression"] = {}
quality_columnrules["warnLevelExpression"]["L2"] = alarm_conditions
quality_columnrules["warnLevelExpression"]["L3"] = ""
quality_columnrules["warnLevelExpression"]["L1"] = ""
quality_json["columnRules"].append(quality_columnrules)
#quality_json = json.dumps(quality_json,encoding = "utf-8",ensure_ascii=False)
quality_json = json.dumps(quality_json)
print(quality_json)
return quality_json
#嵌套字典的获取
data['Parameters']['Parameter']
这样可以获得内部字典的数据.