小编Bas*_*asj的帖子

读取 JSON 并将键转换为 int

众所周知,json将 dict 的整数键转换为字符串:

import json
print json.dumps({1: [2.5, 2.5, 2.5], 2: [3, 3, 3, 3]})
# {"1": [2.5, 2.5, 2.5], "2": [3, 3, 3, 3]}
Run Code Online (Sandbox Code Playgroud)

加载时恢复整数键的最干净的方法是什么?

d = json.loads('{"1": [2.5, 2.5, 2.5], "2": [3, 3, 3, 3]}')
print d
# {u'1': [2.5, 2.5, 2.5], u'2': [3, 3, 3, 3]}
Run Code Online (Sandbox Code Playgroud)

我在想:

d = {int(k): d[k] for k in d}
Run Code Online (Sandbox Code Playgroud)

但是有没有一种更简洁的方法来处理带有 JSON/Python 的整数键的字典,而不需要后验的键转换?

python json dictionary

4
推荐指数
2
解决办法
2552
查看次数

在与 Electron 相同的 BrowserWindow 中有两个隔离的(就历史记录/cookies/localstorage 而言)BrowserViews

假设我有两个BrowserView相同BrowserWindow的 UI 按钮,允许用户在显示bv1或之间切换bv2(就像 Firefox、Chrome 等浏览器中的“选项卡”系统,允许您在不同页面之间切换):

browserWindow = new BrowserWindow({ width: 1200, height: 600 });

let bv1 = new BrowserView({ webPreferences: { nodeIntegration: false }});
bv1.setBounds({ x: 0, y: 0, width: 1200, height: 600 });
bv1.webContents.loadURL('https://www.twitter.com');

let bv2 = new BrowserView({ webPreferences: { nodeIntegration: false }});
bv2.setBounds({ x: 0, y: 0, width: 1200, height: 600 });
bv2.webContents.loadURL('https://www.twitter.com');

browserWindow.setBrowserView(bv1);
Run Code Online (Sandbox Code Playgroud)

当按下按钮(如浏览器中的“标签”)时:

browserWindow.setBrowserView(bv2);
Run Code Online (Sandbox Code Playgroud)

我注意到这两个BrowserView

  • 共享相同的 cookie/localStorage(我不想要!),即如果第一个连接到一个帐户,第二个也将连接到同一个帐户

  • 重新启动 Electron 应用程序后保留历史记录和 cookie(这很好,确实需要!)

问题:如何在 cookie/localStorage/history 方面BrowserView …

javascript browser google-chrome electron

4
推荐指数
1
解决办法
1005
查看次数

“volumes”如何使用 docker-compose 覆盖 docker 镜像的原始文件?

让我们用这个docker-compose.yml

version: '2'
services:
   db:
     image: mysql:5.7
     volumes:
       - ./mysql:/var/lib/mysql                # <- important
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
       - ./wp:/var/www/html                    # <- important
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
Run Code Online (Sandbox Code Playgroud)

我注意到:

  • 做的时候

    mkdir wp
    docker-compose up
    # create a basic Wordpress website from the browser
    # stop the containers from the command-line with CTRL+C
    
    Run Code Online (Sandbox Code Playgroud)

    然后,./wp/(最初为空)将填充新的 Wordpress 文件 (**)。这个是正常的。 …

wordpress docker docker-compose

4
推荐指数
1
解决办法
5131
查看次数

如何使用 Flutter 让后台应用每天下午 2 点打开一个对话框?

我希望应用程序每天下午 2 点打开一个对话框,即使用户正在做其他事情并且此时当前不在应用程序界面中。

如何使用 Flutter 做到这一点,使其同时在 Android 和 iOS 上运行?

我正在考虑这样的方法:

timer = Timer.periodic(Duration(seconds: 60), (Timer t) => checkTime());
Run Code Online (Sandbox Code Playgroud)

每分钟检查一次是否在 14:00:00 和 14:00:59 之间,其方法类似于 flutter run function every x amount of Second,但这似乎浪费资源:可能有更好的,有更多在精确的时间唤醒后台应用程序的自然方式?

问题:如何使用 Flutter 让应用程序在每天下午 2 点显示一个对话框,即使用户正在做其他事情/在另一个应用程序中?

注意:如果设备屏幕关闭(即用户没有使用手机),则下次屏幕打开时应显示该对话框。

android alarm ios dart flutter

4
推荐指数
1
解决办法
3512
查看次数

如何用可变宽度字体模仿等宽字体?

(编辑:我只需要这个 10 位数字 0..9,我可以在 CSS 文件中硬编码这 10 位数字中每一位的字母宽度吗?)

我读过CSS - Make sans-serif font imitate monospace font但 CSS 规则letter-spacing似乎还不够:

在此输入图像描述

如何从标准无衬线字体模仿等宽固定字体?

这并不完美:

.text {
  font-family: sans-serif;
  letter-spacing: 10px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="text">
ABCDEFGHIJKLMNOPQR<br>
STUVWXYZ0123456789
</div>
Run Code Online (Sandbox Code Playgroud)

html css fonts font-face letter-spacing

4
推荐指数
1
解决办法
1541
查看次数

创建一个只需在浏览器中启动URL的Android应用程序

我碰巧有一个适合移动设备的网络应用程序,但我的用户迫切希望将它安装到他们的应用程序抽屉:/我有一些Java的经验,新的Android Studio,我看到有关此stackoverflow问题的一些说明,但我'我不确定此代码属于何处:

Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(" http://www.google.com ")); startActivity(browserIntent);

将它放在默认操作的onCreate方法中会产生错误,表明意图的位置错误.哪里是执行这种意图的好地方?

android

3
推荐指数
1
解决办法
2万
查看次数

自动填零数组

让我们L列出55项:

L=range(55)
for i in range(6):
 print L[10*i:10*(i+1)]
Run Code Online (Sandbox Code Playgroud)

打印列表将有10项i = 0,1,2,3,4,但对于i = 5,它将只有5项.

是否有一种快速的自动零填充方法L [50:60],因此它是10项长?

python arrays numpy list

3
推荐指数
1
解决办法
848
查看次数

在Python中将对象保存到JSON或XML文件中

我创建了tkinter希望保存在JSON或XML文件中的对象(使用小部件),以便我可以在启动后恢复它们.

from Tkinter import *

class Texte:
    def __init__(self, ax, ay, txt):
        self.entry = Entry(root,bd=0,font=("Purisa",int(15)))
        self.entry.insert(0, txt)
        self.x = ax
        self.y = ay 
        self.entry.place(x=self.x,y=self.y)

root = Tk()

a = Texte(10, 20, 'blah')
b = Texte(20, 70, 'blah2')

# here the user will modify the entries' x, y, txt, etc.

L = [a,b]

# here save the list L (containing the Texte objects) into a JSON file or XML so that I can recover them after restart 

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

如何使用JSON或XML保存和恢复这些对象? …

python xml serialization json tkinter

3
推荐指数
1
解决办法
5966
查看次数

在 numpy 数组的末尾附加数组的 n 个副本

设 A 和 B 是两个numpy数组。

我想追加n拷贝B在结束A

C = [A, B, B, B, ... (n times) ... B, B]
Run Code Online (Sandbox Code Playgroud)

如何简单/有效地做到这一点numpy

就像是

numpy.append(A, [B * n])        # B * n  is not n copies of B,
                                #      but rather B multiplied by constant n ?
Run Code Online (Sandbox Code Playgroud)

或与numpy.concatenate

python arrays numpy append

3
推荐指数
1
解决办法
1398
查看次数

Numpy savez /加载了数千个数组,但不是一步到位

我想在序列化的未压缩文件(大约6 GB的数据)中存储大约4000个numpy数组(每个1.5 MB).这是一个包含2个小数组的示例:

import numpy
d1 = { 'array1' : numpy.array([1,2,3,4]), 'array2': numpy.array([5,4,3,2]) }
numpy.savez('myarrays', **d1)

d2 = numpy.load('myarrays.npz')
for k in d2:
    print d2[k]
Run Code Online (Sandbox Code Playgroud)

它有效,但我想在一步中做同样的事情:

  • 保存时,我希望能够保存10个数组,然后执行其他任务(可能会使用几秒钟),然后编写100个其他数组,然后执行其他操作,然后编写其他50个数组等.

  • 当加载:idem时,我希望能够加载一些数组,然后执行其他任务,然后继续加载.

怎么做这个numpy.savez/ numpy.load

python arrays serialization numpy

3
推荐指数
1
解决办法
3352
查看次数