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

2023-10-29

前言

在进行一个项目过程中遇到一个多个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”)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • C#入门-简介

    一 入门 1 简介 1 1 C 语言介绍 C 是一种新式编程语言 不仅面向对象 还类型安全 C 是面向对象的 面向组件的编程语言 多项 C 功能有助于创建可靠且持久的应用程序 垃圾回收自动回收不可访问的未用对象所占用的内存 可以为 null
  • 中标龙芯、deepin龙芯、ubuntu证书存放路径及安装卸载说明

    中标龙芯 deepin龙芯 ubuntu证书存放路径及安装卸载说明 一 Ubuntu deepin龙芯 证书路径 etc ssl certs ca certificates crt 安装步骤 1 生成 crt后缀证书 如test crt 2
  • fiddler抓包番外————了解工具栏

    前言 作为一款功能强大的工具 Fiddler 提供了许多实用的功能和工具栏 可以帮助用户更加高效地使用它 如果您想了解 Fiddler 的工具栏及其功能 那么本篇文章就是为您准备的 在这里 我将为大家详细介绍 Fiddler 的工具栏及其各
  • ubuntu linux 教程 pdf,Ubuntu 12.04 菜鸟完全使用教程(四) PDF

    Linux公社已经在先前发布Suruibin 同学制作的 Ubuntu 12 04 菜鸟使用手册一到三系列教程 看来 Suruibin 同学是要将这套教程进行到底了 Ubuntu 12 04 菜鸟使用手册 四 已经写好了 当我们面对一件繁杂
  • 主备延迟监控

    主备延迟的模拟 文章目录 主备延迟的模拟 1 基本工具的安装 1 1 安装 percona toolkit 1 2 安装 sysbench 2 搭建延迟监控 1 基本工具的安装 1 1 安装 percona toolkit 这玩意儿工具挺全
  • Java的jar包依赖版本冲突解决

    参考 https blog csdn net weixin 38898423 article details 128178055 https blog csdn net Yal insist article details 12766998
  • Student类,包括学生姓名、性别、年龄、Java成绩。要求创建五个该类对象,输出每个学生信息,计算并输出这五个学生Java成绩的平均值, 以及计算并输出他们Ja

    一 Student类 包括学生姓名 性别 年龄 Java成绩 要求创建五个该类对象 输出每个学生信息 计算并输出这五个学生Java成绩的平均值 以及计算并输出他们Java成绩的最高分以及最低分是多少 分别是哪位同学 public class
  • 推荐使用maven shade进行打包,assembly打包会出现若干问题

    现在基本上都是采用maven来进行开发管理 我有一个需求是需要把通过maven管理的java工程打成可执行的jar包 这样也就是说必需把工程依赖的jar包也一起打包 而使用maven默认的package命令构建的jar包中只包括了工程自身的
  • c#调用c++ dll的几种类型转换

    在合作开发时 C 时常需要调用C DLL 当传递参数时时常遇到问题 尤其是传递和返回字符串是 现总结一下 分享给大家 VC 中主要字符串类型为 LPSTR LPCSTR LPCTSTR string CString LPCWSTR LPWS
  • springboot集成

    maven配置
  • conda虚拟环境下启动jupyter,jupyter不能使用该环境下的python

    文章目录 1 问题描述 2 解决方法 参考 1 问题描述 系统的python3版本为python 3 7 当前Conda环境为python 3 6 8 但不管激活虚拟环境与否 jupyter都运行在python 3 7的环境下 如下所示 在
  • 多线程事务控制

    多线程事务控制 spring无法对多线程进行事务控制 原因是 多线程底层连接数据库的时候 是使用的线程变量 TheadLocal 所以 开多少线程理论上就会建立多少个连接 每个线程有自己的连接 事务肯定不是同一个了 解决办法 我强制手动把每
  • 执行若依(ruoyi)项目

    执行若依项目 包含下载 更改配置 报错等介绍 一 成功执行演示 二 若依官网下载 三 修改相关配置 四 执行与show 一 成功执行演示 介绍1 若依框架是开源的项目且前后端分离开发 下图所示 左边是后端成功执行 右边是前端成功执行 介绍2
  • Unity 获取虚拟相机的画面

    void Fun Camera m Camera string filePath RenderTexture rt new RenderTexture Screen width Screen height 16 m Camera targe
  • 掌握Python的X篇_20_默认参、字典的展开

    文章目录 1 默认参数 2 指定实参值对应的形参 3 接受任意多个key value方式的参数 4 字典展开为key value键值对的多个参数 1 默认参数 我们可以通过 为形参指定默认值 这样函数调用过程中如果不传对应实参 就会使用默认
  • 最小覆盖圆(smallest enclosing circle)算法 python 实现

    百度一圈没有找到合适的博客 通过外网找到了python实现 所以整理记录一下 最小圆问题 The smallest circle problem also known as minimum covering circle problem b
  • FPGA学习笔记(三) 流水灯入门FPGA设计流程及阻塞/非阻塞赋值的分析

    系列文章目录 一 FPGA学习笔记 一 入门背景 软件及时钟约束 二 FPGA学习笔记 二 Verilog语法初步学习 语法篇1 三 FPGA学习笔记 三 流水灯入门FPGA设计流程 四 FPGA学习笔记 四 通过数码管学习顶层模块和例化的
  • 云计算系列知识点——云计算基础

    系列文章目录 云计算系列知识点 云计算基础 云计算系列知识点 云服务器产品 云计算系列知识点 网络 公网 私网 VPN等 基础知识与计费模式 文章目录 系列文章目录 云计算技术架构 计算虚拟化 KVM 容器技术 数据中心等级分为T1 T4
  • 软件测试策略

    历史的车轮滚滚向前 科技的创新生生不息 大数据 虚拟现实 智能汽车 区块链等为代表的新技术和新应用层出不穷 它们都与软件息息相关 而软件的质量保证离不开软件测试 软件测试要在成本 范围 进度 资源等因素的制约下取得最佳产出 就离不开测试策略
  • 【多字典公共键】快速找到多个字典的公共键及非公共键

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