将巨大的(95Mb)JSON 数组分割成更小的块?

2023-11-24

我以 JSON 的形式从数据库中导出了一些数据,它本质上只是一个[列表],其中包含一堆(900K){objects}。

现在尝试将其导入到我的生产服务器上,但我有一些便宜的网络服务器。他们不喜欢我在 10 分钟内吃掉他们所有的资源。

如何将该文件分割成更小的块,以便我可以逐块导入它?


Edit:实际上,它是一个 PostgreSQL 数据库。我愿意接受有关如何批量导出所有数据的其他建议。我的服务器上安装了 phpPgAdmin,据说它可以接受 CSV、Tabbed 和 XML 格式。


我必须修复 phihag 的脚本:

import json
with open('fixtures/PostalCodes.json','r') as infile:
  o = json.load(infile)
  chunkSize = 50000
  for i in xrange(0, len(o), chunkSize):
    with open('fixtures/postalcodes_' + ('%02d' % (i//chunkSize)) + '.json','w') as outfile:
      json.dump(o[i:i+chunkSize], outfile)

dump:

pg_dump -U username -t table database > filename

restore:

psql -U username < filename

(我不知道 pg_restore 到底做了什么,但它给了我错误)

有关此的教程很方便地忽略了这些信息,尤其是。这-U在大多数情况下这可能是必要的选项。是的,手册页对此进行了解释,但是筛选 50 个您不关心的选项总是很痛苦。


我最终接受了肯尼的建议……尽管这仍然是一个很大的痛苦。我必须将表转储到文件中,压缩它,上传它,提取它,然后尝试导入它,但生产中的数据略有不同,并且缺少一些外键(邮政编码附加到城市)。当然,我不能只导入新城市,因为这样它会抛出重复的键错误,而不是默默地忽略它,这本来就很好。所以我不得不清空那张桌子,对城市重复这个过程,却发现还有其他东西与城市相关,所以我也不得不清空那张桌子。回到城市,然后我终于可以导入我的邮政编码了。到目前为止,我已经删除了一半的数据库,因为一切都相互关联,我必须重新创建所有条目。迷人的。还好我还没有启动该网站。另外,“清空”或截断表似乎不会重置序列/自动增量,这是我想要的,因为有几个神奇的条目我想要 ID 1。所以..我必须删除或重置这些也是(我不知道怎么做),所以我手动将它们的 PK 编辑回 1。

我会在 phihag 的解决方案中遇到类似的问题,而且我必须一次导入 17 个文件,除非我编写另一个导入脚本来匹配导出脚本。虽然他确实从字面上回答了我的问题,所以谢谢。


在Python中:

import json
with open('file.json') as infile:
  o = json.load(infile)
  chunkSize = 1000
  for i in xrange(0, len(o), chunkSize):
    with open('file_' + str(i//chunkSize) + '.json', 'w') as outfile:
      json.dump(o[i:i+chunkSize], outfile)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将巨大的(95Mb)JSON 数组分割成更小的块? 的相关文章

  • sphinx 中的分组方法文档字符串

    是否可以使用 sphinx 的 autodoc 功能将多个方法文档字符串分组 以便将它们列在一起 class Test object def a self A method of group foo def b self A method
  • 如何在 kubernetes 上使多个 pod 相互通信

    我是 Kubernetes 新手 我正在尝试通过 microk8s 将应用程序部署到 Kubernetes 该应用程序包含Python Flask后端 Angular前端 Redis和MySQL数据库 我将映像部署在多个 Pod 中 状态显
  • [python]没有属性“TessBaseAPI”

    当我编译代码时出现错误 import tessercat api tesseract TessBaseAPI 错误是 AttributeError 模块 对象没有属性 TessBaseAPI 我已经安装了tesseract via pip
  • Python 列表理解不适用于 itertools.groupby 解码

    我正在尝试解码结果itertools groupby到一个值列表中 我的来源是 x 1 2 2 1 6 3 6 5 1 3 最初的方法是使用 for 语句来实现 如下所示 keyfunc itemgetter 0 groups unique
  • S3 选择检索 CSV 中的标头

    我尝试使用以下代码从存储在 S 存储桶中的 CSV 中获取记录子集 s3 boto3 client s3 bucket bucket file name file sql stmt SELECT S FROM s3object S LIMI
  • 如何充分释放函数中使用的GPU内存

    我在用着cupy在接收一个函数numpy数组 将其推到 GPU 上 对其进行一些操作并返回cp asnumpy它的副本 问题 函数执行后内存没有被释放 如ndidia smi 我知道内存的缓存和重用cupy 但是 这似乎仅适用于每个用户 当
  • 比较两个文本文件并计算差异

    我一直在尝试在Python中比较两个文本文件 本质上我想打开它们并一次比较一个字符 如果字符不同 则向计数器添加1 然后显示该值 这是我到目前为止所拥有的 usr bin env python diff 0 import random im
  • 使用 AFNetworking 2.0 发布 JSON 数据

    我有一个 Web 脚本 它通过 HTTP POST 请求接受 JSON 字符串作为输入 我遇到过几个相同的 AFNetworking 1 x 示例 任何人都可以指出我或提供 AFNetworking 2 0 示例 以对使用格式化 JSON
  • 如何将一串Python代码编译成一个可以调用函数的模块?

    在 Python 中 我有一串 Python 源代码 其中包含以下函数 mySrc def foo print foo def bar print bar 我想将这个字符串编译成某种形式类似模块的对象这样我就可以调用代码中包含的函数 这是我
  • 直接打开Spyder还是通过Pythonxy打开?

    之前 我一直在运行PythonSpyder 我总是开始Spyder直接双击其图标 今天突然发现我还有一个东西叫Python x y 我注意到我也可以开始Spyder通过它 这两种方法有什么区别吗 如果不是的话 有什么意义Python x y
  • 当我打印“查询”时获取 PY_VAR1

    我正在制作一个简单的网络抓取代码 当我尝试打印一个值时 它给了我其他东西 def PeopleSearch query SearchTerm query what is query print str query SearchTerm St
  • 让 TensorFlow 在 ARM Mac 上使用 GPU

    我已经安装了TensorFlow在 M1 上 ARM Mac 根据这些说明 https github com apple tensorflow macos issues 153 一切正常 然而 模型训练正在进行CPU 如何将培训切换到GPU
  • Docker Build 找不到 pip

    尝试关注一些 1 https aws amazon com blogs aws run docker apps locally using the elastic beanstalk eb cli 2 http docs aws amazo
  • 如何使用 Ajax 在 Flask 中发布按钮值而不刷新页面?

    我有一个问题 当我单击 Flask 应用程序中的按钮时 我想避免重新加载 我知道有 Ajax 解决方案 但我想知道如何将我的按钮链接到 ajax 函数以发布按钮值并运行链接到其值的 python 函数 这是我的 html 按钮 div di
  • 无法在 Windows 服务器上使 SVN 预提交脚本失败

    我正在编写一个 SVN pre commit bat 文件 该文件调用 Python 脚本来查询我们的问题跟踪系统 以确定用户提供的问题跟踪 ID 是否处于正确的状态 例如 打开 状态 并与正确的关联项目 SVN 服务器运行 Windows
  • 在Python中打开网站框架或图像

    所以我对 python 相当熟练 并且经常使用 urllib2 和 Cookies 来实现网站自动化 我刚刚偶然发现了 webbrowser 模块 它可以在默认浏览器中打开一个网址 我想知道是否可以从该 url 中仅选择一个对象并打开它 具
  • 在哪里可以找到Python内置序列类型的时间和空间复杂度

    我一直无法找到此信息的来源 无法亲自查看 Python 源代码来确定这些对象是如何工作的 有谁知道我可以在网上找到这个吗 结帐时间复杂度 http wiki python org moin TimeComplexitypy dot org
  • 如何有效地计算另一列中每个元素的较大元素的数量?

    我有以下内容df name created utc 0 t1 cqug90j 1430438400 1 t1 cqug90k 1430438400 2 t1 cqug90z 1430438400 3 t1 cqug91c 143043840
  • 如何运行 Mike Bostock 的 D3 示例?

    我一直在尝试经营迈克博斯托克透视地球仪 http bl ocks org mbostock 6747043例如 但是如果您尝试在本地重现它 则对其 json 文件的引用是不正确的 问题来自于这行代码 d3 json mbostock raw
  • uWSGI 皇帝权限被拒绝,除非 root

    我尝试使用二进制文件本身的标志 uid www data gid www data 并将其设置在我的配置中 uid www data gid www data 但套接字总是由我正在使用的帐户生成 因此我从 nginx 收到权限被拒绝的错误

随机推荐

  • 如何获取数组的所有边?

    我有一个 n x n 数组 并且想要接收其轮廓值 例如 4 5 6 7 2 2 6 3 4 4 9 4 8 1 6 1 由此 我会得到这个 4 5 6 7 3 4 1 6 1 8 4 2 见粗体部分 所以本质上 什么是最高效的获取 2D 数
  • 使用position_dodge时出现geom_text问题

    I saw this答案但无法复制它 我得到的数据是这样的 df data frame x rep sample letters 4 2 y round runif 8 1 100 0 z c rep group1 4 rep group2
  • Snakemake 将文件夹定义为输出

    我尝试使用snakemake运行prokka并统治一切 在后者中 我定义了 prokka 将生成的所有输出文件夹以写入结果 Prokka 需要提供一个文件夹作为输出而不是文件 我所拥有的简化版本在这里 PATIENTID ls range
  • 为什么我必须删除 docker 容器?

    停止 docker 容器的哪些工件会留在主机文件系统上 从而需要运行命令 docker 容器修剪 我认为 docker 容器只是运行图像版本 而这些版本在退出后会被清除 如果情况并非总是如此 那么在什么情况下会留下工件 如果你不使用 rm当
  • 如何配置 Hibernate 以使用 SSL 与数据库服务器通信?

    我有一个现有的 java web 应用程序 它使用 Hibernate 来实现持久性 有人告诉我 我必须与加密的数据库对话 所以我的第一个想法是将其设置为通过 SSL 进行通信 并弄清楚如何设置 Oracle 以通过 SSL 侦听 JDBC
  • Android:消息意图

    我是安卓初学者 我需要知道是否有任何意图打开创建消息窗户 我尝试使用这段代码 Intent i new Intent Intent ACTION SEND i setType text plain 但是 它提出 Gmail Email Me
  • 分离时是否需要将 Fragment 接口侦听器设置为 null?

    在涉及回调的Fragment示例中 通常他们在onAttach方法中分配监听器 然后在onDetach方法中将监听器设置为null 最后一部分有必要吗 当片段分离 销毁时 侦听器不会自动设置为 null 吗 或者是否存在这样的情况 您可能会
  • 为 C# 评估者提供沙盒应用程序域的最佳证据

    我有一个 C 评估器 它使用 我认为 Net 4 新的简化沙盒应用程序域模型来托管 C 程序集 并通过远程处理完成其余的工作 创建应用程序域的调用是 Evidence ev new Evidence ev AddHostEvidence n
  • 为什么 DateTime.AddHours 似乎不起作用?

    当我这样做时 我得到相同的结果 1338161400 DateTime origin new DateTime 1970 1 1 0 0 0 0 DateTime date DateTime Parse 28 05 12 01 30 Tim
  • ASP.NET OLEDB 代码在 IIS7 上部署时中断

    我正在尝试编写一个简单的网站 ASP NET v4 它将调用 Windows 搜索 查找特定文件并将其返回给用户 我将以下内容作为示例 它调用 remoteserver 上的 Windows Search 服务 并返回 somefile t
  • 如何在 Visual Studio 中获取零引用/未引用代码的列表

    在 Visual Studio 2013 中 特殊代码 方法 属性 字段 的引用数量如下所示代码镜头 我想闲置 零参考 在视觉工作室中编写代码 有什么办法可以得到它们吗 I mean below reference 实现您所追求的目标的最佳
  • 浸入像素转换会产生完全相同的值

    我正在尝试使用以下函数将倾角转换为像素 我尝试过低 中和高密度模拟器 无论我使用哪种模拟器 像素值都与我传递到函数中的倾角值保持相同的值 private int ConvertDips float dips int pixels int T
  • 故事板和自动布局:如何制作圆形图像

    在故事板 xcode 6 中 我想要一个从 Facebook 获取的圆形用户图像配置文件 所以我使用自动布局在故事板中制作了这个界面 然后 使用 Facebook iOS sdk 获取用户个人资料 使用 swift var facebook
  • 错误-->使用 angular4 时找不到管道“过滤器”

    我正在 angular4 node js 部署的项目中进行单元测试 在测试时我发现了这个错误 Template parse errors The pipe filter could not be found tbody tr 所以我将这两个
  • 在c#中检查路径中是否存在文件夹?

    如何检查文件夹名称是否为RM存在于目录中 我已经通过文本框给出了目录路径 例如txtBoxInput Text在这条路上我必须检查 有什么建议吗 Path Combine 和 Directory Exists http msdn micro
  • Xcode - ld:找不到 -lPods 的库

    当我尝试构建 iOS 应用程序时出现这些错误 ld library not found for lPods clang error linker command failed with exit code 1 use v to see in
  • Android studio - flutter:无连接设备

    我刚刚开始使用flutter进行移动开发 在尝试运行默认的flutter程序时出现这个错误 未找到连接的设备 请连接设备 或查看 flutter dev setup 获取入门说明 这是一台 Windows 10 x64 计算机 安装 And
  • 如何在成员函数上使用 std::async?

    如何对成员函数进行 std async 调用 Example class Person public void sum int i cout lt lt i lt lt endl int main int argc char argv Pe
  • 如何在 Python 中迭代 cur.fetchall()

    我正在研究 Python 3 4 中的数据库连接 我的数据库中有两列 下面的查询以显示的格式为我提供了两列中的所有数据 询问 cur execute select from filehash data cur fetchall print
  • 将巨大的(95Mb)JSON 数组分割成更小的块?

    我以 JSON 的形式从数据库中导出了一些数据 它本质上只是一个 列表 其中包含一堆 900K objects 现在尝试将其导入到我的生产服务器上 但我有一些便宜的网络服务器 他们不喜欢我在 10 分钟内吃掉他们所有的资源 如何将该文件分割