小编R S*_*Sun的帖子

如何使用 serde_json 从 JSON 数组内部流式传输元素?

我有一个 5GB JSON 文件,它是具有固定结构的对象数组:

[
  {
    "first": "John",
    "last": "Doe",
    "email": "john.doe@yahoo.com"
  },
  {
    "first": "Anne",
    "last": "Ortha",
    "email": "anne.ortha@hotmail.com"
  },
  ....
]
Run Code Online (Sandbox Code Playgroud)

我知道我可以尝试使用如何使用 Serde 使用顶级数组反序列化 JSON?中所示的代码来解析此文件。:

use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug)]
struct User {
    first: String,
    last: String,
    email: String,
}

let users: Vec<User> = serde_json::from_str(file)?;
Run Code Online (Sandbox Code Playgroud)

有多个问题:

  1. 首先将其作为一个字符串整体读取
  2. 读取为字符串后,它将其转换为结构向量User(我不想要这样)

我尝试了如何从 Rust 中的文件/流中延迟读取多个 JSON 值?但它会在打印任何内容之前读取整个文件,并在循环内立即打印整个结构。我期待循环中一次有一个对象:

在此输入图像描述

理想情况下,(已解析的)用户对象的解析和处理应该在两个单独的线程/任务/例程中同时发生,或者通过使用通道同时发生。

rust serde-json

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

读取unix @-&gt;/var/run/docker.sock:读取:连接被对等方重置

我正在使用blockchains备份脚本填充数据库backup_2019-05-21.sql,但在 CLI 上运行此命令会显示此错误。

some_user@my_project:~$ docker exec -i mysql_test mysql -uroot -ptestpass Blockchains < /home/some_user/db_backups/backup_2019-05-21.sql mysql: [警告] 在命令行界面上使用密码可能不安全。ERROR 1064 (42000) at line 1:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在“mysqldump: [警告]在命令行界面上使用密码可能不安全”附近使用的正确语法,第 1 行读取 unix @->/var/run/docker。 sock:读取:连接被对等方重置

注:backup_2019-05-21.sql文件大小为5G

有人知道具体原因吗?:)

docker

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

标签 统计

docker ×1

rust ×1

serde-json ×1