小编use*_*129的帖子

Python:从 JSON 转储中删除双引号

我有一个数据库,它以以下格式将行返回为列表:

data = ['(1000,"test value",0,0.00,0,0)', '(1001,"Another test value",0,0.00,0,0)']
Run Code Online (Sandbox Code Playgroud)

之后,我用来json_str = json.dumps(data)获取 JSON 字符串。应用后json.dumps(),我得到以下输出:

json_str = ["(1000,\"test value\",0,0.00,0,0)", "(1001,\"Another test value\",0,0.00,0,0)"]
Run Code Online (Sandbox Code Playgroud)

但是,我需要以下格式的 JSON 字符串:

json_str = [(1000,\"test value\",0,0.00,0,0), (1001,\"Another test value\",0,0.00,0,0)]
Run Code Online (Sandbox Code Playgroud)

所以基本上,我想删除周围的双引号。我试图用它来完成这个任务,json_str = json_str.strip('"')但这不起作用。然后,我尝试了json_str = json_str.replace('"', ''),但这也删除了转义引号。

有谁知道实现此目的的方法,或者Python中是否有一个类似的函数json.dumps()可以产生相同的结果,但没有周围的双引号?

python json

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

全班的例外情况

我正在用Python编写程序,几乎我的类中的每个方法都是这样编写的:

def someMethod(self):
    try:
       #...
    except someException:
       #in case of exception, do something here

       #e.g display a dialog box to inform the user 
       #that he has done something wrong
Run Code Online (Sandbox Code Playgroud)

随着类的增长,一遍又一遍地编写相同的try-except块有点烦人.是否有可能为全班创造某种"全球"例外?Python中推荐的处理方法是什么?

python global exception class

5
推荐指数
1
解决办法
1196
查看次数

pyODBC:指定驱动程序在 Windows 中的位置

是否可以指定 pyodbc 在哪里查找 SQL 驱动程序?

我有一个 python 应用程序,需要“SQL Native Client 10.0”驱动程序才能连接到 SQL 数据库。所以我的连接字符串如下所示:

dsn = 'DRIVER={SQL Server Native Client 10.0};SERVER=localhost;DATABASE=mydatabase;UID=sa;PWD=mypasswd'

con = pyodbc.connect(dsn) 
with con: 
    #do something
Run Code Online (Sandbox Code Playgroud)

一个主要缺点(至少对我来说)是,需要在计算机上安装 SQL Native Client 10.0 驱动程序,并且需要管理员权限。但是,我希望用户无需安装即可运行我的 python 应用程序。

在互联网上进行快速研究后,似乎 SQL Native 客户端 10.0 依赖于一个简单的 DLL (sqlncli10.dll),该 DLL 驻留在 C:\Windows\System32 中。那么是否有可能告诉 pyodbc 应该在哪里寻找合适的 SQL 驱动程序?

据我了解,pymssql 做了类似的事情(FreeTDS 驱动程序包含在 Python 包中,因此不需要进一步安装驱动程序)。然而,在我看来,pyobc 比 pymssql 更稳定(而且社区似乎也更活跃),所以我想使用 pyodbc 与我的数据库进行通信。

python sql windows dll pyodbc

5
推荐指数
1
解决办法
6361
查看次数

Qt:QT中的未知模块:webview

我刚刚使用Qt提供的"Qt Unified installer"安装了Qt 5.6.在安装开始之前,我确保安装程序中的"WebView"选项已打勾.不幸的是,在Qt安装目录中没有用于Windows的WebView(我在整个目录中搜索了一个webview dll),只有一个用于Android的库.为什么windows缺少webview包?

编辑:我尝试使用webengine,但不幸的是我收到了类似的消息:"QT中的未知模块:webengine"

国王问候伯恩哈德

module webview qt5 qt5.6

5
推荐指数
1
解决办法
5281
查看次数

用于动画图像的 QQuickImageProvider

有谁知道是否有办法在AnimatedImage不使用 的情况下提供动画图像url?问题是,我通过 HTTPS 获得了一个 base64 编码的 GIF,我想在AnimatedImage. 我考虑过使用QQuickImageProvider,但不幸的是QQuickImageProvider不能与 一起使用AnimatedImage,只能与 一起使用Image。(另请参阅https://bugreports.qt.io/browse/QTBUG-30524)。

有人能想出另一种方法来实现这一目标吗?我唯一能想到的就是实际上将文件写入磁盘并使用参数url(这确实效率低下)。

image gif animated-gif qt5 qtquick2

5
推荐指数
0
解决办法
400
查看次数

PySerial丢失数据

我的问题是,PySerial似乎丢失了一些数据包,我不知道为什么.

我有两个python脚本,第一个从文本文件中读取数据并将其写入微控制器,在那里操作数据.然后,微控制器通过不同的串行端口将修改后的数据发送回PC.(澄清一下:我需要两个串口,因为在最终的应用程序中,脚本将在不同的PC上运行.但是,出于测试目的,在一台PC上运行这两个脚本更容易)

所以基本上,我的硬件设置如下:

PC ----(serial port 1)----> microcontroller
   <---(serial port 2)----- 
Run Code Online (Sandbox Code Playgroud)

在将数据写入微控制器后,我希望能够获得一定数量的数据字节.如果我使用终端程序(如HyperTerminal)来监控收到的数据,一切看起来都很好.但是,如果我尝试使用Python脚本读取数据,我只获得预期数据字节的一小部分.

例如:

+--------------------+--------------------+
| with HyperTerminal | with Python script |
+--------------------+--------------------+
| 1:W:00522          | 1:W:00522          |
| 1:W:00532          | 1:W:00532          |
| 1:W:00518          | 1:W:00522          |
| 1:W:00522          | 1:W:00526          |
| 1:W:00522          | 1:W:00514          |
| 1:W:00526          | 1:W:00520          |
| 1:W:00514          | 1:W:00514          |
| 1:W:00520          | 1:W:00522          |
| 1:W:00520          | 1:W:00526          |
| 1:W:00514          | 1:W:00520          |
| 1:W:00516          | 1:W:00526          |
| 1:W:00522 …
Run Code Online (Sandbox Code Playgroud)

python multithreading loss pyserial

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

如果存在匹配,SQLite 减去两个表之间的时间差

我需要一些有关 SQLite 查询的帮助。我有两个表,一个名为“生产”的表和一个名为“暂停”的表:

CREATE TABLE production (
    date TEXT,
    item TEXT,
    begin TEXT,
    end TEXT
);

CREATE TABLE pause (
    date TEXT,
    begin TEXT,
    end TEXT
);
Run Code Online (Sandbox Code Playgroud)

对于生产的每个项目,都会在生产表中创建一个条目,其中包含当前日期、开始时间和结束时间(两个格式为 HH:MM:SS 的时间戳)。所以我们假设,生产表如下所示:

+------------+-------------+------------+----------+
|    date    |    item     |    begin   |   end    |
+------------+-------------+------------+----------+
| 2013-07-31 |    Item 1   |  06:18:00  | 08:03:05 |
| 2013-08-01 |    Item 2   |  06:00:03  | 10:10:10 |
| 2013-08-01 |    Item 1   |  10:30:15  | 14:20:13 |
| 2013-08-01 |    Item 1   |  15:00:10  | 16:00:00 …
Run Code Online (Sandbox Code Playgroud)

sqlite time match

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