小编Ste*_*ith的帖子

Python - 将dict转储为json字符串

我错过了什么?我想将字典转储为json字符串.

我正在使用python 2.7

使用此代码:

import json
fu = {'a':'b'}
output = json.dump(fu)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gevent-1.0b2-py2.7-linux-x86_64.egg/gevent/greenlet.py", line 328, in run
    result = self._run(*self.args, **self.kwargs)
  File "/home/ubuntu/workspace/bitmagister-api/mab.py", line 117, in mabLoop
    output = json.dump(fu)
TypeError: dump() takes at least 2 arguments (1 given)
<Greenlet at 0x7f4f3d6eec30: mabLoop> failed with TypeError
Run Code Online (Sandbox Code Playgroud)

python json

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

-Wshadow = global考虑枚举类条目阴影全局.为什么?

在GCC 7.3和8.2上使用-Wshadow = global进行编译时,编译器会警告以下代码段阴影.

constexpr int A = 0;

class Bar {
public:
    enum Bars {
        A = 0
    };
};

enum class Foo {
    A = 0     // warns this entry shadows global declaration of A
};

int main() {
    return 0;
}

<source>:11:9: warning: declaration of 'A' shadows a global declaration [-Wshadow]
     A = 0
         ^
<source>:1:15: note: shadowed declaration is here
 constexpr int A = 0;
               ^
Run Code Online (Sandbox Code Playgroud)

因为引用时枚举类需要枚举类的名字,我的理解是,这三个声明A是分开的:::A,::Bar::A,和::Foo::A.

Clang …

c++ gcc gcc-warning

7
推荐指数
1
解决办法
185
查看次数

来自 MS SQL Server 通过 Linux 上的 PHP 的非模拟准备语句支持

概括

我正在尝试使用准备好的语句来停止 SQL 注入,但我无法找到保证它正常工作所需的支持。


设想

我在 Linux 上托管一个站点,该站点连接到带有 FreeTDS 0.91 版的 Microsoft SQL Server,特别是使用 FreeTDS 的dblib. 我已将tds数据库连接的版本设置为 7.4,并且正在使用 PHP 的PDO对象。

根据FreeTDS 文档,4.2 不支持准备好的语句:

TDS 4.2 有限制

  • 当然,只有ASCII。
  • 不支持 RPC。
  • 不支持 BCP。
  • varchar 字段限制为 255 个字符。如果您的表定义了更长的字段,它们将被截断。
  • 不支持动态查询(也称为准备语句)。

然而,没有任何迹象表明 7.4 不支持准备好的语句,这给了我合理的信心,它们至少不会引发驱动程序错误。

PHP 的 PDO 支持通过PDO::setAttribute(). 我有兴趣PDO::ATTR_ERRMODE将所有错误设置为异常,并PDO::ATTR_EMULATE_PREPARES在兼容时强制数据库执行准备好的语句。


问题

测试连接时,我收到以下错误:

数据库错误:SQLSTATE[IM001]:驱动程序不支持此功能:驱动程序不支持设置属性

无法设置PDO::ATTR_EMULATE_PREPARES,我无法保证数据库实际上按预期执行准备好的语句。

无论如何要修改我的方法,或者是否有替代方法来保证准备好的语句在来自 Linux 的 MS SQL Server 上安全地执行?

php linux sql-server pdo freetds

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

BIOS磁盘 - 将扇区读入内存(int 0x13,ah = 0x02)阻塞

我正在编写MBR并使用QEMU进行测试.

当将读取扇区用于内存(int 0x13, ah=0x02)时,该int指令似乎阻止了我的程序的执行,并且它继续挂起.我已经用各种打印语句对此进行了测试,以确认这是特定的指令阻塞.

什么可以使中断阻止?我认为这只能通过cli指令完成,即使这样也不会阻止int指令.


对于上下文,这是导致阻塞中断的代码read_sectors_16:

        [bits 16]        
        [ORG 0x7C00]
        jmp 0x000:start_16      ; ensure cs == 0x0000

        reset_failure_str db 'error: boot disk reset', 13, 10, 0
        read_failure_str db 'error: boot disk read', 13, 10, 0
        boot_segaddr dw 0x7E00

        read_attempt_str db 'read attempt', 13, 10, 0
        end_read_attempt_str db 'end read attempt', 13, 10, 0

start_16:
        ;; Initialize segment registers
        mov ax, cs
        mov ds, ax
        mov es, …
Run Code Online (Sandbox Code Playgroud)

x86 mbr qemu osdev bootloader

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

根据用户输入求解表达式

我正在编写一个程序,要求用户输入2个输入:x和y.这些值用于计算该公式:(3x ^ 2-2xy + 5)/(y ^ 2 + 1).当我输入值 - > 2,3时,它会计算一个非常小的负数,例如-12586511

#include <stdio.h>

int main (void) {

    int x, y;

    printf("Enter two integer values (x, y): ");
    scanf("%d,%d", &x, &y);

    float E = (3 * (x*x) - 2 * (x*y) + 5) / (y*y+1);

    printf("The expression value is: %.2f\n", E);


    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c logic expression

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

找不到 main()。为什么这个程序打印“你好”?

#include<stdio.h>

#define begin(m,a,i,n) m##a##i##n
#define start begin(m,a,i,n)

void start() {
   printf("Hello");
}
Run Code Online (Sandbox Code Playgroud)

是的,是的,我确实看到了这些字母,m a i n但是它们是如何组合在一起并起作用的?

调试器...似乎对这个程序没有帮助。

c preprocessor c-preprocessor

0
推荐指数
1
解决办法
55
查看次数

标签 统计

c ×2

bootloader ×1

c++ ×1

c-preprocessor ×1

expression ×1

freetds ×1

gcc ×1

gcc-warning ×1

json ×1

linux ×1

logic ×1

mbr ×1

osdev ×1

pdo ×1

php ×1

preprocessor ×1

python ×1

qemu ×1

sql-server ×1

x86 ×1