美文网首页Python四期爬虫作业
【Python爬虫】字典 json类型 练习

【Python爬虫】字典 json类型 练习

作者: d1b0f55d8efb | 来源:发表于2017-08-18 14:06 被阅读0次

字典初始化:

1.  dict_a={'a':1,'b':2}
    print(dict_a)
    print(type(dict_a))

    {'a': 1, 'b': 2}
    <class 'dict'>
2.   dict_b=dict(a=1,b=2)
     dict_b=dict({'a':1,'b':2})
     dict_b=dict((('a',1),('b',2)))
     print(dict_b,type(dict_b))
3.    dict_c={}.fromkeys(('a','b','c'),12)
      print(dict_c)
      {'b': 12, 'a': 12, 'c': 12}

字典的方法
1、adict.keys() 返回一个包含字典所有KEY的列表;
2、adict.values() 返回一个包含字典所有value的列表;
3、adict.items() 返回一个包含所有(键,值)元祖的列表;
4、adict.clear() 删除字典中的所有项或元素;
5、adict.copy() 返回一个字典浅拷贝的副本;
6、adict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None);
7、adict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None);
8、adict.has_key(key) 如果key在字典中,返回True,否则返回False。 现在用 in 、 not in;
9、adict.iteritems()、adict.iterkeys()、adict.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;
10、adict.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;
11、adict.setdefault(key, default=None) 和set()方法相似,但如果字典中不存在Key键,由 adict[key] = default 为它赋值;
12、adict.update(bdict) 将字典bdict的键值对添加到字典adict中。

json:

json.load()      从文件解码json数据

json.loads()     从字符串解码json数据        将已编码的 JSON 字符串解码为 Python 对象

json.dump()      编码json数据到文件

json.dumps()     编码json数据到字符串     将 Python 对象编码成 JSON 字符串

1.导入json模块

import json

2.定义一个空字典dict_a,空字典dict_b

dict_a={}
dict_b=dict()

3.给dict_a 添加3个key a1,a2,a3分别对应的值为b1,b2,b3

dict_a={}
dict_b=dict()
dict_a['a1']='b1'
dict_a['a2']='b2'
dict_a['a3']='b3'
print(dict_a)

{'a1':'b1', 'a3': 'b3', 'a2': 'b2'}

4.获取dict_a所有的key,命名变量ks,打印输出ks及ks的数据类型

dict_a={}
dict_b=dict()
dict_a['a1']='b1'
dict_a['a2']='b2'
dict_a['a3']='b3'
print(dict_a)
ks=dict_a.keys()
print(ks,type(ks))

{'a3': 'b3', 'a1': 'b1', 'a2': 'b2'}
dict_keys(['a3', 'a1', 'a2']) <class 'dict_keys'>

5.打印dict_a所有的value 命名变量vs,打印输出vs及vs的数据类型

dict_a={'a3': 'b3', 'a1': 'b1', 'a2': 'b2'}
vs=dict_a.values()
print(vs,type(vs))

dict_values(['b1', 'b2', 'b3']) <class 'dict_values'>

6.执行代码print(dict_a.items()) 观察输出结果

  dict.items()    返回一个包含字典中(键, 值)对元组的列表
  dict_items([('a3', 'b3'), ('a1', 'b1'), ('a2', 'b2')])

7.将a1和a3对应的值对换
8.打印输出dict_a

dict_a['a1']='b3'
dict_a['a3']='b1'

dd=dict_a.get('a1')
print(dd)
dict_a['a1']=dict_a['a3']
dict_a['a3']=dd
print(dict_a)

b1
{'a2': 'b2', 'a3': 'b1', 'a1': 'b3'}

9.删除字典dict_a中a1对应的值
10.打印输出dict_a

ff=dict_a.pop('a1')
print(dict_a)

{'a3': 'b1', 'a2': 'b2', 'a1': 'b3'}
{'a3': 'b1', 'a2': 'b2'}

11.将此时的dict_a数据更新到dict_b

dict_b.update(dict_a)
print(dict_b)

{'a3': 'b1', 'a2': 'b2'}

12.打印dict_b 并观察a1和a4是否在dict_b中

print(dict_b.get('a1'))
print(dict_b.get('a4'))

None
None

13.a1如不存在dict_b中,输入以下代码 a1=dict_b.get('a1') 并打印变量a1

a1=dict_b.get('a1')
print(a1)

None

14.将13题变量a1 添加到dict_b中,key为'a1'

dict_b['a1']='a1'
print(dict_b)

{'a3': 'b1', 'a1': 'a1', 'a2': 'b2'}

15.a4如不存在dict_b中,将a4对应的值默认为'null',并添加到dict_b中,key为'a4'

a4=dict_b.get('a4','null')
dict_b['a4']=a4

16.打印dict_b及其数据类型

dict_b['a4']='null'
print(dict_b,type(dict_b))

{'a4': 'null', 'a2': 'b2', 'a1': 'a1', 'a3': 'b1'} <class 'dict'>

17.将dict_b转化为json类型 命名为变量 json_c

json_c=json.dumps(dict_b)
print(json_c,type(json_c))

{"a4": "null", "a1": "a1", "a2": "b2", "a3": "b1"} <class 'str'>

18.打印json_c及其数据类型 观察16题打印结果和18题结果 将不同之处指明

类型从字典到字符串

19.将json_c转换为字典类型 命名为dict_c 打印输出 dict_c及其数据类型

dict_c=json.loads(json_c)
print(dict_c,type(dict_c)

{'a2': 'b2', 'a3': 'b1', 'a4': 'null', 'a1': 'a1'} <class 'dict'>

相关文章

网友评论

    本文标题:【Python爬虫】字典 json类型 练习

    本文链接:https://www.haomeiwen.com/subject/tkogrxtx.html