【多字典公共键】快速找到多个字典的公共键及非公共键

前言

在进行一个项目过程中遇到一个多个URL参数对比与分析的问题,所以就有了这个博客。
单纯的了解找到多个字典的公共键的问题
可以移步到【python进阶】python进阶技巧
找到2-5 快速找到多个字典的公共键
想看实操,不妨浏览一下下面的实操代码

新知

如果想查找字典里是否有某个键,可以用your_dict.__contains__('something')
集合set添加元素可以用your_set.add(something)
两个字典公共键可以用d1.keys() & d2.keys()
两个字典除公共键外的键可以用d1.keys() ^ d2.keys()

实操代码

import re
from functools import reduce


def generate_data_dict(url):
    url += "&"
    parameter = re.findall(r'&(.*?)=', url)
    head = re.findall(r'\?(.*?)=', url)
    parameter.insert(0, head[0])
    value = re.findall(r'=(.*?)&', url)
    dic = {}
    for data in zip(parameter, value):
        dic.update({data[0]: data[1]})
    return dic


def get_result(result):
    for per in result:
        print(per)
    print()


!!!!!d1-d11的链接在下面给出,有兴趣的小伙伴可以试一试。

dl = [d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11]

common = reduce(lambda a, b: a & b, map(dict.keys, dl))

get_result(common)

partial = set()

for per1 in dl:
    for per2 in dl:
        if per1 == per2:
            continue
        op = per1.keys() & per2.keys()
        result = op ^ common
        for per in result:
            if per not in partial:
                partial.add(per)

get_result(partial)

count = 1

for d in dl:
    print("---peculiar parameter for d%d---" % count)
    count += 1
    peculiar = set()
    for key in d.keys():
        if key not in common and key not in partial:
            peculiar.add(key)

    get_result(peculiar)

d1 = generate_data_dict(“https://api5-core-c-lq.amemv.com/aweme/v1/user/profile/other/?sec_user_id=MS4wLjABAAAAhBDw8BoMhdCGOAx20uK-BKKm3Zh3HOgNoE–pKB6PQzDa_9DFu3fiznQPGoYrkib&address_book_access=1&from=0&publish_video_strategy_type=2&os_api=22&device_type=SM-N960F&ssmix=a&manifest_version_code=110501&dpi=320&uuid=355757939423022&app_name=aweme&version_name=11.5.0&ts=1597635728&cpu_support64=false&app_type=normal&ac=wifi&host_abi=armeabi-v7a&update_version_code=11509900&channel=gdt_growth14_big_yybwz&_rticket=1597635728140&device_platform=android&iid=1195870575147646&version_code=110500&mac_address=18%3A56%3A80%3AE6%3AE6%3AD7&cdid=8c0f6b1d-41a3-456a-af15-31c327791da1&openudid=db4cc2cc3f814170&device_id=369037831314888&resolution=9001600&os_version=5.1.1&language=zh&device_brand=samsung&aid=1128&mcc_mnc=46007")
d2 = generate_data_dict("https://webcast3-normal-c-hl.amemv.com/webcast/user/?request_from=admin&current_room_id=6860406789230299919&target_uid=67630515777&sec_anchor_id=MS4wLjABAAAAaH5DCFilK8epOPjkktqAsBM9owi3-lEuXgCUjqGAlL4&anchor_id=67630515777&sec_target_uid=MS4wLjABAAAAaH5DCFilK8epOPjkktqAsBM9owi3-lEuXgCUjqGAlL4&packed_level=2&webcast_sdk_version=1450&webcast_language=zh&webcast_locale=zh_CN&os_api=23&device_type=MI%205s&device_platform=android&ssmix=a&iid=1002356164793959&manifest_version_code=100401&dpi=416&uuid=008796760711127&version_code=100400&app_name=aweme&cdid=437ee2ae-38e1-4eb0-a7cb-79f29f7de882&version_name=10.4.0&ts=1597321445&openudid=a54bde54d82e80fd&device_id=4116173093342071&resolution=1170
1872&os_version=6.0.1&language=zh&device_brand=Xiaomi&app_type=normal&ac=wifi&update_version_code=10409900&aid=1128&channel=tengxun_new&_rticket=1597321445176”)
d3 = generate_data_dict(“https://webcast3-normal-c-hl.amemv.com/webcast/ranklist/room/6860298186024553229/contributor/?room_id=6860298186024553229&rank_type=18&sec_anchor_id=MS4wLjABAAAAwollZ_9va0v8BxAy71O4oveuI6J3uhpxSWJPqcVkD04&sec_user_id=MS4wLjABAAAA_thoHYfTHuEf_7T57hadCnLMgRp95cmcYVU3mbB9fhUq7f8tg6uFN8o0fx3m3f3m&anchor_id=96392129156&webcast_sdk_version=1450&webcast_language=zh&webcast_locale=zh_CN&os_api=23&device_type=MI%205s&device_platform=android&ssmix=a&iid=1002356164793959&manifest_version_code=100401&dpi=416&uuid=008796760711127&version_code=100400&app_name=aweme&cdid=437ee2ae-38e1-4eb0-a7cb-79f29f7de882&version_name=10.4.0&ts=1597288327&openudid=a54bde54d82e80fd&device_id=4116173093342071&resolution=11701872&os_version=6.0.1&language=zh&device_brand=Xiaomi&app_type=normal&ac=wifi&update_version_code=10409900&aid=1128&channel=tengxun_new&_rticket=1597288327829")
d4 = generate_data_dict("https://webcast3-normal-c-hl.amemv.com/webcast/ranklist/hour/?hour_info=0&room_id=6860294858525444868&rank_type=12&sec_anchor_id=MS4wLjABAAAAQ3_3KZt6ryHC3GQHJyk-tomTFHdh_EN6UvQFsq0IhTA&sec_user_id=MS4wLjABAAAA_thoHYfTHuEf_7T57hadCnLMgRp95cmcYVU3mbB9fhUq7f8tg6uFN8o0fx3m3f3m&anchor_id=487824151282376&webcast_sdk_version=1450&webcast_language=zh&webcast_locale=zh_CN&os_api=23&device_type=MI%205s&device_platform=android&ssmix=a&iid=1002356164793959&manifest_version_code=100401&dpi=416&uuid=008796760711127&version_code=100400&app_name=aweme&cdid=437ee2ae-38e1-4eb0-a7cb-79f29f7de882&version_name=10.4.0&ts=1597288506&openudid=a54bde54d82e80fd&device_id=4116173093342071&resolution=1170
1872&os_version=6.0.1&language=zh&device_brand=Xiaomi&app_type=normal&ac=wifi&update_version_code=10409900&aid=1128&channel=tengxun_new&_rticket=1597288506435”)
d5 = generate_data_dict(“https://webcast3-normal-c-hl.amemv.com/webcast/setting/i18n/package/?locale=zh_cn&cur_version=7699203250506956800&webcast_sdk_version=1450&webcast_language=zh&webcast_locale=zh_CN&os_api=23&device_type=MI%205s&device_platform=android&ssmix=a&iid=1002356164793959&manifest_version_code=100401&dpi=416&uuid=008796760711127&version_code=100400&app_name=aweme&cdid=437ee2ae-38e1-4eb0-a7cb-79f29f7de882&version_name=10.4.0&ts=1597320014&openudid=a54bde54d82e80fd&device_id=4116173093342071&resolution=11701872&os_version=6.0.1&language=zh&device_brand=Xiaomi&app_type=normal&ac=wifi&update_version_code=10409900&aid=1128&channel=tengxun_new&_rticket=1597320014750")
d6 = generate_data_dict("https://lianmengapi-hl.snssdk.com/live/promotions/?author_id=92977763488&sec_author_id=MS4wLjABAAAAOsAg5fP_5Z4nYBu3n1uYnKKl7xV3gP0_5kF5HkP5s_8&room_id=6860322370587265805&entrance_info=%257B%2522request_id%2522%253A%25222020081315443401002202001409DC8BAF%2522%252C%2522sdk_version%2522%253A%25221450%2522%252C%2522action_type%2522%253A%2522draw%2522%252C%2522room_id%2522%253A%25226860322370587265805%2522%252C%2522_param_live_platform%2522%253A%2522live%2522%252C%2522enter_from_merge%2522%253A%2522live_merge%2522%252C%2522anchor_id%2522%253A%252292977763488%2522%252C%2522enter_method%2522%253A%2522live_cover%2522%252C%2522follow_status%2522%253A%25220%2522%252C%2522enter_from%2522%253A%2522live%2522%252C%2522category_name%2522%253A%2522live_merge_temai_live_cover%2522%252C%2522carrier_type%2522%253A%2522live_list_card%2522%257D&first_enter=false&os_api=23&device_type=MI%205s&device_platform=android&ssmix=a&iid=1002356164793959&manifest_version_code=100401&dpi=416&uuid=008796760711127&version_code=100400&app_name=aweme&cdid=437ee2ae-38e1-4eb0-a7cb-79f29f7de882&version_name=10.4.0&ts=1597304726&openudid=a54bde54d82e80fd&device_id=4116173093342071&resolution=1170
1872&os_version=6.0.1&language=zh&device_brand=Xiaomi&app_type=normal&ac=wifi&update_version_code=10409900&aid=1128&channel=tengxun_new&_rticket=1597304726572”)
d7 = generate_data_dict(“https://lianmengapi-hl.snssdk.com/live/promotion/skus/?promotion_id=3417911833351331642&os_api=23&device_type=MI%205s&device_platform=android&ssmix=a&iid=1002356164793959&manifest_version_code=100401&dpi=416&uuid=008796760711127&version_code=100400&app_name=aweme&cdid=437ee2ae-38e1-4eb0-a7cb-79f29f7de882&version_name=10.4.0&ts=1597305657&openudid=a54bde54d82e80fd&device_id=4116173093342071&resolution=11701872&os_version=6.0.1&language=zh&device_brand=Xiaomi&app_type=normal&ac=wifi&update_version_code=10409900&aid=1128&channel=tengxun_new&_rticket=1597305657860")
d8 = generate_data_dict("https://api3-normal-c-hl.amemv.com/aweme/v2/shop/promotion/?promotion_id=3417911833351331642&product_id=3417911833351331642&aweme_id=0&author_id=92977763488&sec_author_id=MS4wLjABAAAAOsAg5fP_5Z4nYBu3n1uYnKKl7xV3gP0_5kF5HkP5s_8&meta_param=%7B%22enter_from%22%3A%22live%22%2C%22live_room_id%22%3A%226860322370587265805%22%2C%22entrance_info%22%3A%22%7B%5C%22_param_live_platform%5C%22%3A%5C%22live%5C%22%2C%5C%22action_type%5C%22%3A%5C%22draw%5C%22%2C%5C%22anchor_id%5C%22%3A%5C%2292977763488%5C%22%2C%5C%22carrier_source%5C%22%3A%5C%22live_merge%5C%22%2C%5C%22carrier_type%5C%22%3A%5C%22live_list_card%5C%22%2C%5C%22category_name%5C%22%3A%5C%22live_merge_temai_live_cover%5C%22%2C%5C%22enter_from%5C%22%3A%5C%22live%5C%22%2C%5C%22enter_from_merge%5C%22%3A%5C%22live_merge%5C%22%2C%5C%22enter_method%5C%22%3A%5C%22live_cover%5C%22%2C%5C%22follow_status%5C%22%3A%5C%220%5C%22%2C%5C%22live_id%5C%22%3A1%2C%5C%22product_activity_type%5C%22%3A%5C%22nonactivity%5C%22%2C%5C%22request_id%5C%22%3A%5C%222020081315443401002202001409DC8BAF%5C%22%2C%5C%22room_id%5C%22%3A%5C%226860322370587265805%5C%22%2C%5C%22sdk_version%5C%22%3A%5C%221450%5C%22%2C%5C%22source_method%5C%22%3A%5C%22live_cover%5C%22%7D%22%7D&enter_from=live&os_api=23&device_type=MI%205s&device_platform=android&ssmix=a&iid=1002356164793959&manifest_version_code=100401&dpi=416&uuid=008796760711127&version_code=100400&app_name=aweme&cdid=437ee2ae-38e1-4eb0-a7cb-79f29f7de882&version_name=10.4.0&ts=1597305767&openudid=a54bde54d82e80fd&device_id=4116173093342071&resolution=1170
1872&os_version=6.0.1&language=zh&device_brand=Xiaomi&app_type=normal&ac=wifi&update_version_code=10409900&aid=1128&channel=tengxun_new&_rticket=1597305767869”)
d9 = generate_data_dict(“https://api3-normal-c-lq.amemv.com/aweme/v1/promotion/user/promotion/list/?user_id=1732421802526916&sec_user_id=MS4wLjABAAAAy9YOUqHKrwQ0lR94v9UvAyMCVQ_awqX2jdpwJjH8UEYMLMHMP8SJQ2yLl940onNb&cursor=0&count=20&column_id=0&goods_type=0&shop_version=1&os_api=22&device_type=SM-N960F&ssmix=a&manifest_version_code=110501&dpi=320&uuid=355757939423022&app_name=aweme&version_name=11.5.0&ts=1597633753&cpu_support64=false&app_type=normal&ac=wifi&host_abi=armeabi-v7a&update_version_code=11509900&channel=gdt_growth14_big_yybwz&_rticket=1597633753415&device_platform=android&iid=1195870575147646&version_code=110500&mac_address=18%3A56%3A80%3AE6%3AE6%3AD7&cdid=8c0f6b1d-41a3-456a-af15-31c327791da1&openudid=db4cc2cc3f814170&device_id=369037831314888&resolution=1600900&os_version=5.1.1&language=zh&device_brand=samsung&aid=1128&mcc_mnc=46007")
d10 = generate_data_dict("https://ec.snssdk.com/comment/itemList?device_id=4116173093342071&b_type_new=2&id=3417911833351331642&contentType=json&is_vcd=1&request_tag_from=h5&os_api=23&device_type=MI%205s&device_platform=android&ssmix=a&iid=1002356164793959&manifest_version_code=100401&dpi=416&uuid=008796760711127&version_code=100400&app_name=aweme&cdid=437ee2ae-38e1-4eb0-a7cb-79f29f7de882&version_name=10.4.0&ts=1597306305&openudid=a54bde54d82e80fd&device_id=4116173093342071&resolution=1170
1872&os_version=6.0.1&language=zh&device_brand=Xiaomi&app_type=normal&ac=wifi&update_version_code=10409900&aid=1128&channel=tengxun_new&_rticket=1597306306850”)
d11 = generate_data_dict(“https://ec.snssdk.com/comment/listajax?device_id=4116173093342071&b_type_new=2&product_id=3417911833351331642&page=0&type=0&is_vcd=1&request_tag_from=h5&os_api=23&device_type=MI%205s&device_platform=android&ssmix=a&iid=1002356164793959&manifest_version_code=100401&dpi=416&uuid=008796760711127&version_code=100400&app_name=aweme&cdid=437ee2ae-38e1-4eb0-a7cb-79f29f7de882&version_name=10.4.0&ts=1597306305&openudid=a54bde54d82e80fd&device_id=4116173093342071&resolution=1170*1872&os_version=6.0.1&language=zh&device_brand=Xiaomi&app_type=normal&ac=wifi&update_version_code=10409900&aid=1128&channel=tengxun_new&_rticket=1597306306850”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值