python字典中如何一键多值的写入?

环球青藤 2020/10/31 05:57

python字典中如何一键多值的写入?

python字典中一键多值写入的方法:

1、循环写入字典key、value、删除指定的键值对:

原文本‘jp_url.txt’每行元素以逗号分隔:

host_key,product_id,product_name,cont_start,cont_end
ah2.zhangyue.com,100002,掌阅,bookId=,&startChapterId
ih2.ireader.com,100002,掌阅,bid=,&
www.ireader.com,100002,掌阅,&bid=,&cid
m.zhangyue.com,100002,掌阅,readbook/,/
c13.shuqireader.com,100003,书旗,bookId=,&chapterId
t.shuqi.com,100003,书旗,bid/,/cid
想要得到:
{‘100002’:‘product_name’.......}

代码如下:

def makeDict():
    fileRead=open('jp_url.txt','rb')
    pnes=fileRead.readpnes()
    read_dict={}#定义字典
    for pne in pnes:
        pne_pst=pne.sppt(',')#每行按逗号分隔成列表
        id=pne_pst[1]#取到id
        name=pne_pst[2]#取到name
        read_dict[id]=name#此处关键产生键值对,其中key是id
    read_dict.pop('product_id')#删除key为‘product_id’的键值对
    return read_dict
read_dict=makeDict()

2、循环写入一键对多值:

其中格式{key:[value1,value2,...]}

文本txt格式如下:

guaguashipinpaotianshi|.guagua.cn,

guaguashipinpaotianshi|iguagua.net,

guaguashipinpaotianshi|.17guagua.com,

jiuxiumeinvzhibo|.69xiu.com,

nbazhibo|.estream.cn,

youbo|yb.sxsapp.com,

其中第一列的名字有重复想要一个名字对应多个结果,代码如下:

def makehostDict():
    host_dict={}
    f_allhost=open('xml_host.txt','rb')
    pnes=f_allhost.readpnes()
    for pne in pnes:
        pne_pst=pne.sppt('|')
        name=pne_pst[0]
        host=pne_pst[1].strip('n')
        if host is not '':
            if  host_dict.has_key(name):
                host_dict.get(name).append(host)#此处为关键向字典里已经有的key(name)值后继续添加value(host)
            else:
                host_dict.setdefault(name,[]).append(host)#创建{name,[host]}value为列表的格式的字典。
    return host_dict
host_dict=makehostDict()
print host_dict

推荐教程:《python视频教程》

以上就是小编分享的关于python字典中如何一键多值的写入?的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!

免费直播

    精选课程 更多

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司