RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-593879

mrgervant's questions

Martin Hope
mrgervant
Asked: 2024-12-16 22:51:07 +0000 UTC

使用 COPY TO CSV 时将 NULL 导出为“”

  • 5

使用 Python,我使用以下查询将表从 Postgresql 保存到 CSV:

copy ({function}) to stdout with (format csv, delimiter ',', header true, force_quote *);

这个请求在哪里{function}:select ...

请求本身通过以下方式调用copy_expert:

with db_connection.cursor() as cursor, open(file_path, "w") as file:
    cursor.copy_expert(query, file)

一切正常,只有 null 在最终的 csv 中被写入为空值:

... "1",,,,"9597a9724d4dfd0c40681a0", ...
       ^^^^

我需要将 null 保存为"":

... "1","","","","9597a9724d4dfd0c40681a0", ...
       ^^^^^^^^^^

如果我理解正确的话,COPY函数中的NULL参数表示读取CSV时哪些值被识别为null。

是否可以做相反的事情 - 当写入 CSV null 时,将其写为""

或者只是进入原始选择并使用 COALESCE 将每列的 null 替换为空行 - 因为用空字符串初步手动替换 null 有帮助吗?我想知道是否可以使用 COPY 参数配置所需的行为。

UPD:根据@Mike的评论,COPY TO也可以接受NULL值作为参数,但不能传递双引号:

NULL ''           ->  осталось также ,,,
NULL ""           ->  zero-length delimited identifier at or near """"
NULL ''''         ->  null requires a parameter
NULL ''''''       ->  null requires a parameter
NULL '""'         ->  CSV quote character must not appear in the NULL specification
NULL '""""'       ->  CSV quote character must not appear in the NULL specification
NULL E'\'\''      ->  изменилось на ,',',
NULL E'\'\'\'\''  ->  изменилось на ,'','',
NULL E'\"\"'      ->  CSV quote character must not appear in the NULL specification
NULL E'\"\"\"\"'  ->  CSV quote character must not appear in the NULL specification
python
  • 1 个回答
  • 36 Views
Martin Hope
mrgervant
Asked: 2024-11-11 16:53:09 +0000 UTC

如何通过浏览器传输 Bearer 令牌

  • 5

我配置了 nginx(现在它只列出目录)来检查请求中是否存在带有不记名令牌的标头:

授权:持有者#####

通过该方法实现nginx.conf:

http {
    ///
    # Mapping Bearer tokens
    map $http_authorization $is_auth {
        default         false;
        "Bearer #####"  true;
    }
    ///
    
    server {
        listen 443 ssl http2;
        ///
        # Bearer authorization
        if ($is_auth = false) {
            return 401;
        }
        ///
    }
}

通过Postman或者curl访问服务器就可以了。但问题出现了:是否有可能以某种方式在浏览器中访问这样的服务器?

我尝试指定一个 URL 作为参数,但它不起作用 - 我希望它的工作方式类似于 URL 中的基本身份验证:http://username:[email protected]/

https://Authorization=%22Bearer%20TOKEN%[email protected]/
https://Authorization:%22Bearer%20TOKEN%[email protected]/
https://dev-1.su/?Authorization=%22Bearer%20TOKEN%22
https://dev-1.su/?Authorization:%22Bearer%20TOKEN%22

是否可以选择通过浏览器传输 Bearer 令牌?我需要为此配置 nginx 吗?

nginx
  • 1 个回答
  • 33 Views
Martin Hope
mrgervant
Asked: 2024-08-25 00:26:33 +0000 UTC

自修正 HelloWorld("print")

  • 20

为了纪念即将到来的 9 月 1 日,我将举办一场自我修正写作比赛Hello world。

让我立即保留该任务是在 中创建的,但您可以用任何具有与 Python 类似行为的语言Python编写答案:

  • 通过指定括号内的最后一个字符串将字符串传递到标准控制台输出函数
  • PL允许你运行一个明显写有错误的程序

您需要编写代码,在代码末尾将指示反向HelloWorld 命令(允许添加工作所需的结构 - 例如end括号等):

# Любой Ваш код
HelloWorld("print")

启动后,Hello world 应用程序的更正文本将显示在控制台中:

print("HelloWorld")

HelloWorld在这种情况下,可以更改“发送用于打印”的文本(部分) - 代码应与以下命令类似地工作:

hello_world("print")  >>>  print("hello_world")

test("print")         >>>  print("test")

输出的文本是用一个词写成的——就像一个函数一样。

在它之后,输出命令用括号和引号表示- 它自己的 PL。无需提供更改的能力("print")(或在另一种语言中类似)。

同样,应用程序不必在显示正确的 HelloWorld 代码文本后运行。


JavaScript 中的示例:

# Любой Ваш код
HelloWorld('console.log')

帕斯卡示例:

program Hello;
begin
  # Любой Ваш код
  HelloWorld('writeln')
end.

胜利标准(平票降序)

  1. 计票时的最高票数
  2. 最少数量的代码字符(所有内容都包括在内 - 包括您的代码和最后一行 HelloWorld)
  3. 最早回复
总结 - 9 月 1 日 21:00 莫斯科时间

根据比赛结果,得票最多的答案是@CrazyElf——通过捕获异常的解决方案NameError。

但答案同样包含有趣和意想不到的解决方案!

感谢大家的参与!特别感谢Python以外语言的解决方案!

所以@extrn想出了Perl中最短的解决方案——61个字符!


我最初的解决方案也是通过拦截异常来发明的,但它有111 个字符NameError长:

import sys;sys.excepthook=lambda*a:print(f'''print("{str(a[1]).split()[1].strip("'")}")''')
HelloWorld("print")
любой-язык
  • 16 个回答
  • 765 Views
Martin Hope
mrgervant
Asked: 2024-08-04 03:19:34 +0000 UTC

在 Python 中使用 JIT 编译器

  • 8

Python 3.13 预发布版本添加了实验性 JIT 编译器。也就是说,它可能会在秋季成为完整版本的一部分。据说它使代码运行得更快。

但是,如果我理解正确的话,JIT编译器可以通过不同的方式实现,因为Python 有几个非官方编译器:pypy / numba。因此,他们可以通过不同的方式或在不同的地方加速应用程序。

问题出现了 - JIT 编译器在 Python 中到底优化了什么,相应地,它们可以用于什么类型的任务?

python
  • 1 个回答
  • 102 Views
Martin Hope
mrgervant
Asked: 2024-07-31 13:38:55 +0000 UTC

将源数据库中的列数据类型保存到 pandas dataframe

  • 6

我使用 pandas 数据框作为临时数据存储实时将数据从一个数据库 (postgresql) 传输到另一个数据库 (greenplum)。通过 df.to_sql() 向目标数据库插入数据时遇到类型不匹配错误:

psycopg2.errors.DatatypeMismatch 列“created_at”的类型为 bigint,但表达式的类型为文本

我使用 dtypes 推导了数据帧数据类型,结果发现除了一列之外的所有列都变得简单object。

在这次讨论的帮助下,我们能够编写工作代码,并明确指示 dtype 中 to_sql 的键:

dtypes = {
    "product_id": sqlalchemy.types.BIGINT(),
    "id": sqlalchemy.types.VARCHAR(length=256),
    "created_at": sqlalchemy.types.BIGINT()
    # и другие колонки
}

df.to_sql(
    table,
    db_engine,
    if_exists='replace',
    index=False,
    schema=TMP_SCHEMA,
    method='multi',
    chunksize=CHUNKSIZE,
    dtype=dtypes
)

但是,此方法不适合进一步处理多个表 - 我想自动替换源列的数据类型。

上面的答案提供了映射csv 第一行的示例。在我的数据库中,可能存在NULL,这将阻止我们确定数据类型。有没有办法解决保留原始数据类型的问题,而不必为每个表手动指定它们?

python
  • 1 个回答
  • 38 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5