Python字典及api的相关运用(第一部分)

字典基础知识

基础类型:  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])
创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值

4

dict.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值

5

dict.has_key(key)
如果键在字典dict里返回true,否则返回false。Python3 不支持。

6

dict.items()
以列表返回可遍历的(键, 值) 元组数组

7

dict.keys()
以列表返回一个字典所有的键

8

dict.setdefault(key, default=None)
和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

9

dict.update(dict2)
把字典dict2的键/值对更新到dict里

10

dict.values()
以列表返回字典中的所有值

11

pop(key[,default])
删除字典给定键 key 所对应的值,返回值为被删除的值。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']

这样可以获得内部字典的数据.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值