怎样从JSON字符串生成Python对象
JSON字符串到Python对象 可以使用json module里的loads函数。loads非常强大,对JSON里的嵌套结构也可以,比如一个dict里的value是一个list,或者list of dict。 Python对象到JSON字符串 反对来,用json module也可以从Python对象生成JSON字符串,需要使用json.dumps函数:
程序|生活|学到就是赚到
JSON字符串到Python对象 可以使用json module里的loads函数。loads非常强大,对JSON里的嵌套结构也可以,比如一个dict里的value是一个list,或者list of dict。 Python对象到JSON字符串 反对来,用json module也可以从Python对象生成JSON字符串,需要使用json.dumps函数:
snapd 是什么? Snapd 是一个用于管理 Snap 软件包的守护进程,它是 Ubuntu 和其他 Linux 发行版上的一个包管理器。 Snap 是一种新型的软件包格式,它旨在提供更好的软件管理体验。Snap 软件包是完全自包含的,包括所有运行所需的库和依赖项,因此它们可以在不同的 Linux 发行版上运行,并且不需要为每个发行版打包不同的软件包。Snap 还支持软件自动更新和回滚,使得软件更新更加方便和安全。 Snapd 提供了一个守护进程,它在后台监控系统中的 Snap 软件包,确保它们的自动更新,管理 Snap 软件包的安装、配置和删除等操作。Snapd 还提供了一个命令行工具,名为 snap,用于与 Snap 软件包进行交互,例如安装、升级和删除软件包。 除了 Ubuntu 发行版,Snapd 还支持在其他 Linux 发行版上使用,例如 Debian、Fedora、Arch Linux 等。Snapd 是开源软件,并可以在 GitHub 上找到其源代码。 查看snap版本的命令 要检查…
Read more
您可以使用以下命令在Terminal上查询当前Ubuntu系统版本: 此命令将返回您的 Ubuntu 发行版的完整信息,包括版本号、CODENAME、描述和发布日期等。 如果您只需要查询 Ubuntu 发行版的版本号,可以使用以下命令: 此命令将只返回 Ubuntu 发行版的版本号,例如 “20.04” 或 “18.04” 等。
用Python给server发post request可以用强大的request库。以下是例子,几行就写完。包括import library,construct request,发送post请求,检查response,根据是否成功输出不同的信息。
Python, Uncategorized, 互联网, 编程
看一个网站是不是用Wordpress做的神器 Oit.is 很简洁的网页,在搜索栏输入网址就行,反应速度很快。 有趣的是,Otiis本身不是用Wordpress做的,而是Django。 用Wordpress的著名网站 很多政府机构和大学网站都是用Wordpress做的,比如白宫,Harvard, Berkeley Oitis链接 oit.is 本文链接
科技爱好者周刊 内容科技相关,作者阮一峰 (Twitter @ruanyf)。每周精选一张图片。“本周话题”应该为作者原创写作内容。比如231期,讨论了Twitter裁员,其中用了Twitter用户数和员工数随着时间变化曲线,发现2014年后用户数量基本稳定在3亿左右,而员工数确翻了一倍左右,所以把员工数减少回2014年的人数应该是可以的。 另外收集了不少科技相关的网络内容并提供链接。比如231期介绍了63岁日本退休工程师Hiroyuki Ueda自学Swift,开发了“双重计算器”(Twin Cal)App。主要解决人脑记不住计算中间结果的问题。在AppStore看了一下,Twin-Calc卖3.99,同时有个免费版的T-Calc-Lite。 更多内容请看科技爱好者周刊。 潮流周刊 作者Tw93 (Twitter @HiTw93)。页面设计非常小清新。和科技爱好者周刊类似每期内容有:封面故事,技术相关,潮流开源,随便看看。105期里介绍的HyperUI.dev就非常好用,里面有很多例子用tailwind做出好看的Web UI元素的例子。 周刊链接 科技爱好者周刊 潮流周刊 本文链接
本文用一个简单的例子示范一下怎样用Javascript来定时更新网页里的DOM。DOM全程是Document Object Model,也就是HTML网页上的元素。使用Javascript能让原本静态的HTML动起来。 效果如下: Counter Demo 以下例子代码全部在一个HTML文件里,可以命名为updatedom_demo.html,内容如下: 保存后用浏览器打开就能看到动画网页。 本文链接
在旧金山湾区时间与北京时间转换,用Javascript方便地实现时区转换例子一文中示范了怎样用moment.js做时间的时区转换的例子。例子里下载了moment.js和moment-timezone-with-data.js,如官方文档所说的,加载如下 那么能不能不下载,直接用CDN呢?也是可以的 那么之前的例子就变成如下 使用CDN就不再需要把两个js文件下载和html文件放一起,而加载地址改成CDN的URL。使用上和原来一样。 本文链接
在当今这个服务全球化时代,时区转换是使用各种编程语言时经常遇到的问题。之前的这篇文章讲了Python实现时间在不同时区的换算,本文讲一下怎样用Javascript实现。多亏了moment.js这个库,时区转换实现非常直观方便,比Python的pytz好用点。Google出来排名前几名的文章感觉并不满意,所以在这总结分享一下,以便需要的时候很容易找到end to end能工作的例子。 从上面例子可以看到,真的非常简单,基本就是一个moment对象调用tz函数,参数为新时区的名字,就生成了表示新时区时间一个新的moment。可以用format打印出来来验证其准确性。 在Chrome浏览器验证 Javascript的好处就是有个浏览器就可以跑,不需要设置什么环境。验证上面代码可以打开moment.js的官网,打开developer tool的console, 注意,一定要在这个网站下打开developer tools,这样moment会在浏览器环境里,在其他网站下打开会找不到moment。 运行上面代码如下 已知湾区时间(-0700)比北京时间(0800)晚15小时,所以上面结果是正确的。moment(sftime)是创建一个copy,如果用sftime.tz(‘Asia/Shanghai’)就会改变sftime这个对象本身的内容,而我们想新建一个bjtime的对象存放北京时间。 建立一个HTML文件来运行代码 如果需要在本地建立一个HTML,可以把moment.js和moment-timezone-with-data.js下载下来,放在和将要创建的test_moment.html文件放一起。编辑test_moment.html如下: 在Chrome打开test_moment.html可以看到空白页面。打开developer -> Javascript Console可以看到结果
San Francisco Time ?? Beijing Time ?? 把一个时区的时间,比如湾区9:00am,转换成另一个时区的时间,比如北京/香港/新加坡时间,应该是很简单的问题。用Python做时区转换好像挺麻烦的,容易出错。Google出来的前几条结果都不是很让人满意,本文总结我测试过可靠可行不太复杂的方法,以及一些容易出错的地方。 先上可行的Python例子,把三藩(SF)湾区时间9am, 转换成对应的北京时间,用了datetime和pytz。先构造一个湾区时间的对象,然后转化成北京/香港/新加坡时间。 加上注解和debug信息。 可以看到建立的湾区时间时区为-0700而北京时间为0800,可以验证湾区和中国时差为15小时。 时区行话解释 全球标准时间用的是位于英国的格林威治时间(GMT, Greenwich Mean Time)。因为以前格林威治天文台是世界中心,本初子午线或者0度经线就定义为穿过它的经线。然后又有了一个叫世界协调时间的东西(UTC, Coordinated Universal Time)。这个和GMT基本一致,大概就是北京话和普通话的区别吧。北京在Greenwich的东边,时间领先GMT/UTC 8小时,所以叫东八区,代号0800。而湾区在格林威治的西边,时间滞后7个小时(美国国会通过了永久使用夏令时法案),所以叫西7区,代号-0700。而两地时差为7+9=15,北京时间比湾区时间领先15个小时。 同理,日本和韩国位于东9区,代号为0900,那么时间就比为与东八区的中国早1小时。 当地真实时间和约定标准时间 一个地方的真实时间只取决于太阳相对当地的位置,也就是取决于当地经度。但是为了方便,每个国家可以人为规定用什么时间。比如整个中国虽然跨了几个纬度,确人为规定了各地都使用北京时间。新加坡真实时间应该为0655,确规定使用0800,也许是和大中华区保持一致比较方便。 回到Python上,这也正是pytz包的一些坑的来源。pytz用的是地理意义上的真实时间,而人们真正使用的是当地法律约定的时间,这两者是有差别的。 Python datetime不设时区是什么时间? 如果新建一个datetime对象,不设时区的话,会是当地时间。 用epochconverter转换1656658800.0,正是湾区时间2022-07-01 00:00:00 如果replace了timezone,就把底下的timestamp变了,而不是保持timestamp而改变时间表示形式(日期,小时/分/秒)。所以replace(tzinfo=…)并不是做时区变换。而且注意下面例子里上海时间是0806,并不是0800,应该用了地理意义上的真实时间而不是法定时间。这个地理时间在生活中基本没用,这个pytz的坑之一。 参考 Python3中datetime时区转换介绍与踩坑 python datetime时区转换 技巧:用datetime模块处理时区转换,不要用time模块 将UTC、EST时区的时间转化成北京时间(python) pytz库时区的坑(转) The Solution…
Read more