合并Python 中两个字典(dict) dict合并 = {**dict1, **dict2}的问题

查看:971
本文介绍了合并Python 中两个字典(dict) dict合并 = {**dict1, **dict2}的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1.问题:当我使用这个式子的时候,输出的结果并不是两个字典合并的结果,而是缺了一部分,请问为什么,是代码中缺少了些参数吗?可否仔细讲解一下合并字典的方法,谢谢各位大神!

2.代码:

from pprint import pprint
import requests #用於API HTTP requests
url_api = "http://restapi.amap.com/v3/config/district"
parameters = {'keywords': '广州市', 
              'subdistrict': 1,
              'key': 'f1e7b002768a20d69ce376198c2115ac'}
r = requests.get (url_api, params=parameters)
data = r.json()

bp1 = {x['adcode']:x['name'] for x in data['districts'][0]['districts']}
         
url_api_1 = "http://restapi.amap.com/v3/config/district"
parameters = {'keywords': '广州市', 
              'subdistrict': 2,
              'key': 'f1e7b002768a20d69ce376198c2115ac'}
t = requests.get (url_api_1, params=parameters)
data = t.json()

bp2 = {d2['adcode']:d1['name']+d2['name'] for d1 in data['districts'][0]['districts'] for d2 in d1['districts']}
bp12 = {**bp1, **bp2}
print(bp12)

3.输出结果:{'440103': '荔湾区站前', '440104': '越秀区中山六路', '440105': '海珠区官洲', '440106': '天河区冼村', '440111': '白云区竹料', '440112': '黄埔区鱼珠', '440113': '番禺区鱼窝头', '440114': '花都区雅瑶', '440115': '南沙区万顷沙', '440117': '从化区', '440118': '增城区'}

4.应该得到的结果:{'440103': '荔湾区', '440104': '越秀区', '440105': '海珠区', '440106': '天河区', '440111': '白云区', '440112': '黄埔区', '440113': '番禺区', '440114': '花都区', '440115': '南沙区', '440117': '从化区', '440118': '增城区', '16310': '荔湾区龙溪', '16471': '荔湾区金花', '16472': '荔湾区西关', '16473': '荔湾区上九', '16474': '荔湾区芳村', '16478': '荔湾区多宝', '16480': '荔湾区陈家祠', '16484': '荔湾区彩虹', '16486': '荔湾区白鹤洞', '16488': '荔湾区荔湾路', '16490': '荔湾区沙面', '16492': '荔湾区南源', '16494': '荔湾区桥中', '16496': '荔湾区龙津', '16497': '荔湾区西村', '16498': '荔湾区站前', '16373': '越秀区文明路', '16417': '越秀区登峰', '16418': '越秀区岭南', '16419': '越秀区大东', '16420': '越秀区大新', '16421': '越秀区建设', '16422': '越秀区东风', '16423': '越秀区环市东', '16424': '越秀区沿江路', '16425': '越秀区华乐', '16426': '越秀区东山口', '16427': '越秀区二沙岛', '16428': '越秀区二三路', '16429': '越秀区北京路', '16430': '越秀区黄花岗', '16431': '越秀区解放北', '16432': '越秀区解放南', '16433': '越秀区越秀公园', '16434': '越秀区梅花村', '16435': '越秀区东川', '16436': '越秀区五羊新城', '16437': '越秀区东湖', '16438': '越秀区农林下路', '16439': '越秀区广卫', '16440': '越秀区东风东', '16441': '越秀区水荫', '16442': '越秀区小北', '16443': '越秀区流花', '16444': '越秀区六榕', '16445': '越秀区淘金', '16446': '越秀区人民北路', '16476': '越秀区七八路', '16482': '越秀区中山六路', '16308': '海珠区中山大学', '16349': '海珠区前进路', '16448': '海珠区江南大道', '16449': '海珠区滨江', '16450': '海珠区海幢', '16451': '海珠区工业大道', '16452': '海珠区东晓', '16453': '海珠区晓港', '16454': '海珠区新港', '16455': '海珠区南华西', '16456': '海珠区宝岗', '16457': '海珠区南石头', '16458': '海珠区赤岗', '16459': '海珠区昌岗', '16460': '海珠区广州大道南', '16461': '海珠区客村', '16462': '海珠区凤阳', '16463': '海珠区琶洲', '16464': '海珠区沙园', '16465': '海珠区南洲', '16466': '海珠区龙凤', '16467': '海珠区素社', '16468': '海珠区瑞宝', '16469': '海珠区华洲', '16470': '海珠区官洲', '16391': '天河区沙河', '16392': '天河区体育中心', '16393': '天河区天河城', '16394': '天河区石牌', '16395': '天河区天河北', '16396': '天河区东站', '16397': '天河区棠下', '16398': '天河区天河公园', '16399': '天河区岗顶', '16400': '天河区龙口', '16401': '天河区林和', '16402': '天河区长兴', '16403': '天河区车陂', '16404': '天河区东圃', '16405': '天河区黄村', '16406': '天河区珠江新城', '16407': '天河区前进', '16408': '天河区猎德', '16409': '天河区沙东', '16410': '天河区龙洞', '16411': '天河区元岗', '16412': '天河区员村', '16413': '天河区兴华', '16414': '天河区粤垦', '16415': '天河区五山', '16416': '天河区冼村', '16447': '白云区嘉禾', '16500': '白云区黄石', '16501': '白云区机场路', '16502': '白云区白云大道', '16503': '白云区京溪', '16504': '白云区三元里', '16505': '白云区同和', '16506': '白云区罗冲围', '16507': '白云区景泰', '16508': '白云区金沙', '16509': '白云区同德', '16510': '白云区棠景', '16511': '白云区松洲', '16512': '白云区永平', '16513': '白云区钟落潭', '16514': '白云区江高', '16515': '白云区良田', '16516': '白云区太和', '16517': '白云区均禾', '16518': '白云区人和', '16519': '白云区龙归', '16520': '白云区神山', '16521': '白云区竹料', '16286': '黄埔区丰乐北路', '16542': '黄埔区长洲', '16543': '黄埔区大沙', '16544': '黄埔区红山', '16545': '黄埔区荔联', '16546': '黄埔区南岗', '16547': '黄埔区穗东', '16548': '黄埔区文冲', '16549': '黄埔区鱼珠', '16522': '番禺区大石', '16523': '番禺区大学城', '16524': '番禺区洛溪', '16525': '番禺区祈福', '16526': '番禺区市桥', '16527': '番禺区钟村', '16528': '番禺区大岗', '16529': '番禺区东环', '16530': '番禺区东涌', '16531': '番禺区榄核', '16532': '番禺区灵山', '16533': '番禺区南浦', '16534': '番禺区桥南', '16535': '番禺区清河东路', '16536': '番禺区沙头', '16537': '番禺区沙湾', '16538': '番禺区石基', '16539': '番禺区石楼', '16540': '番禺区石碁', '16541': '番禺区鱼窝头', '16287': '花都区北兴', '16288': '花都区赤坭', '16289': '花都区花东', '16290': '花都区花山', '16291': '花都区炭步', '16292': '花都区梯面', '16293': '花都区新华', '16294': '花都区雅瑶', '16309': '南沙区横沥', '16311': '南沙区黄阁', '16313': '南沙区万顷沙'}

解决方案

与合并的逻辑无关,你打印一下bp1bp2即可发现内容就是这样,想必是你抓取时的处理出了问题

这篇关于合并Python 中两个字典(dict) dict合并 = {**dict1, **dict2}的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆