🐍PyTricks | Python 中如何合并一个内字典列表?
需求有如下列表,要将他们按照 id 合并成一个列表。l1 = [{'id': 9, 'av': 4}, {'id': 10, 'av': 0}, {'id': 8, 'av': 0}]l2 = [{'id': 9, 'nv': 45}, {'id': 10, 'nv': 0}, {'id': 8, 'nv': 30}]
解决方案
初级版将两个列表按照 id 分组,分别放置到新列表中,然后遍历其中一个列表,并按照 key 将数据更新,代码如下:
l3 = {x['id']: {'av': x['av']} for x in l1}l4 ...
中国传统色 | 如何判断一个颜色属于什么色系?
背景在做 项目 的时候,需要判断一个颜色值所在色系(如:红橙黄绿青蓝紫黑白灰),用眼睛观察太慢,算不上好办法,那么怎么判断呢?通过阅读 该讨论 知道了一种方案:将 RGB 色值转化为 HSV,之后通过 Hue 去判断彩色的种类,用明度去判断黑白灰。具体实现如下。
基础知识RGBRGB 是从颜色发光的原理来设计定的,通俗点说它的颜色混合方式就好像有红、绿、蓝三盏灯,当它们的光相互叠合的时候,色彩相混,而亮度却等于两者亮度之总和,越混合亮度越高,即加法混合。
红、绿、蓝三个颜色通道每种色各分为 256 阶亮度,在 0 时“灯”最弱——是关掉的,而在 255 时“灯”最亮。当三色灰度数值相同时,产生不同灰度值的灰色调,即三色灰度都为 0 时,是最暗的黑色调;三色灰度都为 255 时,是最亮的白色调。
在电脑中,RGB 的所谓“多少”就是指亮度,并使用整数来表示。通常情况下,RGB 各有 256 级亮度,用数字表示为从 0、1、2…直到 255。注意虽然数字最高是 255,但 0 也是数值之一,因此共 256 级。
HSVHSV 是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛 ...
中国传统色 | 朱砂痣还是白月光,哪个才是我们的心头好?
引言张爱玲在《红玫瑰与白玫瑰》中这样写道:
也许每一个男子全都有过这样的两个女人,至少两个。娶了红玫瑰,久而久之,红的变了墙上的一抹蚊子血,白的还是”床前明月光”;娶了白玫瑰,白的便是衣服上沾的一粒饭黏子,红的却是心口上一颗朱砂痣。
那么白月光和朱砂痣到底有什么不同呢?嘿嘿,其实这是一篇讲自己开源项目的文章,被标题骗进来的非战斗人员可以选择自行离场啦。😳
背景用于展示中国传统色的网站很多,为什么我还要叠床架屋地去自己造轮子呢?为了练手,顺便打发自己闲得挠墙的无聊时光。众所周知,人类的本质是复读机。🤬
技术栈后端
使用 Python 收集、整理、去重数据;
爬虫,使用 request 模块等;
前端 使用 Vue 编写页面,展示数据;
具体解决方案介绍数据获取
对于网站给出源码的(目前已完成) 直接去源码中拿数据,之后对格式拼装、组合;
没有源码的(后期开发计划)
上爬虫,给👴爬!
利用 OCR 技术识别文字和 PIL 获取颜色对应的 RGB 值数据;
Kite - AI Autocomplete for Python
数据处理颜色名称使用 pypinyin ...
记一次 base64 编码错误问题
前言出现这个问题,首先看一下是不是把 encode 后的字符错误地传给了 decode 方法,如果是的话,请调用正确的方法,如果不是,可以尝试使用下面的代码。
代码import jsonimport base64class Bytes2JsonEncoder(json.JSONEncoder): """ 解决:TypeError: Object of type bytes is not JSON serializable """ def default(self, obj): if isinstance(obj, bytes): return str(obj, encoding='utf-8') return json.JSONEncoder.default(self, obj)class B64Crypty: """ 密码混淆与反混淆 """ de ...
如何使用 ceph-deploy 部署一个指定版本号的 ceph 集群
前言在 上文 中我们使用 ceph-deploy 搭建 ceph 集群。而当前版本 ceph-deploy 不支持用户指定小版本号,使用--release只支持安装最新稳定版。当然我们可以手动搭建,但是操作下来耗时且容易出错,毕竟人生苦短(我太懒了)。
版本信息
系统版本[root@admin-node my-cluster]# cat /etc/system-releaseCentOS Linux release 7.6.1810 (Core) [root@admin-node my-cluster]# uname -aLinux admin-node 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
ceph 版本[root@admin-node my-cluster]# ceph -vceph version 14.2.5 (ad5bd132e1492173c85fda2cc863152730b16a92) nautilus ...
CentOS7 部署 nautilus 版 CEPH(使用 ceph-deploy)
引言项目开发中准备基于 ceph-mgr 中的 dashboard 做二次开发,本文主要记录搭建 ceph 环境的过程。
环境说明节点配置中参考官网搭建示例,基于实体机内存状况限制,使用三节点最小节点配置,具体如下:
前期准备
配置网络为静态 ip此步请自行完成; 此步配置之后需要保证:
开机网络自启;
各节点之间的网络连通性(ping {hostname})
添加 CEPH 的 yum 源国内使用阿里源加快下载vim /etc/yum.repos.d/ceph.repo
[Ceph]name=Ceph packages for $basearchbaseurl=http://mirrors.aliyun.com/ceph/rpm-nautilus/el7/$basearchenabled=1gpgcheck=0type=rpm-md[Ceph-noarch]name=Ceph noarch packagesbaseurl=http ...
如何禁用 Angular 中模板驱动表单中的某个字段?
前言书接上回,我们在上文中将表单展示出来了,但是怎么按照逻辑对表单进行限制呢?比如说基本的禁用表单中的某个字段?
方法直接使用disable=true并不能随着 checkbox 的变化使值变化,所以我们需要这么写:<!--html--><!-- Field control --><!-- bool --><div class="form-group" *ngIf="moduleOption.value.type === 'bool'"> <div class="checkbox checkbox-primary"> <input id="{{ moduleOption.value.name }}" type="checkbox" (ch ...
Angular 中如何将 Object 或者 Array 按序排列?
注意:Angular 不再提倡使用管道,因为(a) 它们性能堪忧(b) 它们会阻止比较激进的代码最小化(minification)。
无论是 filter 还是 orderBy 都需要它的参数引用对象型属性。这样的管道必然是非纯管道,并且 Angular 会在几乎每一次变更检测周期中调用非纯管道。
过滤、 特别是排序是昂贵的操作。 当 Angular 每秒调用很多次这类管道函数时,即使是中等规模的列表都可能严重降低用户体验。建议:把你的过滤和排序逻辑挪进组件本身。 组件可以对外暴露一个 filteredHeroes 或 sortedHeroes 属性,这样它就获得控制权,以决定要用什么频度去执行其它辅助逻辑。 你原本准备实现为管道,并在整个应用中共享的那些功能,都能被改写为一个过滤/排序的服务,并注入到组件中。
前言写前端的时候难免遇到数据展示问题,比如 form 表单,在 使用 FormBuilder 来生成表单控件 时,当 input 输入框较多的时候,我们可能希望能够自主控制表单字段顺序,此时,则需要对表单字段进行排序。那么,如何实现呢?
使用内置 orderBy < ...
使用 Python 压缩图片(借助 TinyPng 的接口)
@Depreciate目前暂时没有这方面的需求。而且在Third-Party Solutions中,已经有了相应的 Python 实现,后面有需求的话再继续改写吧。有人有需求的话可以访问下面的链接:
mbarkhau/tinypng: Python module and command line tool for tinypng.com
GcsSloop/TinyPng: 图片批量压缩脚本(Python)
缘起看到别人实现了一套,但是只是基于 Python2 的支持,所以打算写一个支持 Python3 的版本。
使用说明首先去官网申请到 key 👉tinypng。然后运行脚本。-h查看帮助。
依赖看 pipenv 配置
思路key在执行前直接配置:程序自动获取(环境变量、文件、代码中);如果获取失败则提示配置,设置 key 成功,保存到文件中,下一次执行时,直接在文件中直接读取;
压缩处理
如果没有给出参数,则递归压缩当前目录下的文件,并保存到tiny目录;
如果给出参数并且是文件,则压缩单个文件
如果没有额外参数,则压缩该文件并保存到 tiny 目录;
如果给出的额外参数是 ...
使用 pip 装包时提示'[Errno 101] Network is unreachable'
缘起今天写代码安装依赖的时候,执行pipenv install {SOMETHING}时报错:(PyTinyPng) [root@172 PyTinyPng]# pipenv install tinifyInstalling tinify…✔ Installation Succeeded Pipfile.lock not found, creating…Locking [dev-packages] dependencies…Locking [packages] dependencies…✘ Locking Failed! #……[pipenv.exceptions.ResolutionFailure]: No versions found[pipenv.exceptions.ResolutionFailure]: Warning: Your dependencies could not be resolved. You likely have a mismatch in your sub-dependencies. First try clearin ...