编辑一个大型JSON文件

时间:2018-05-11 22:51:48

标签: json large-files

如何手动编辑大型JSON?

我有一个大的JSON文件,大约100 MB。我想手动检查一些属性,然后为一些对象添加更多属性。

我首先看一下文件的一个子集。比如,前100个对象。我会逐渐扩大到可能250,然后是一千,等等。

有人可以推荐一种擅长此任务的语言或软件(我正在运行Windows)吗?

之前的一些建议无效或无效。

  • Sublime - 永远无法加载文件。永远加载吧。不得不杀人。
  • NotePad ++ - 永远无法加载。僵住了。不得不杀了。
  • 网上任何内容 - 数据都是保密的。

更多Python和Jupyter信息。

with open(path, 'r') as f:
    data = json.load(f)
    for i, (k, v) in enumerate(data.items()):
        print(i, k, v)
        if i == 2:
            break

导致错误。我认为这与Jupyter有关,但我不确定。

IOPub data rate exceeded.
The notebook server will temporarily stop sending output
to the client in order to avoid crashing it.
To change this limit, set the config variable
`--NotebookApp.iopub_data_rate_limit`.

Current values:
NotebookApp.iopub_data_rate_limit=1000000.0 (bytes/sec)
NotebookApp.rate_limit_window=3.0 (secs)

这让我想知道这样做是否只是愚蠢。

可能的解决方案

5 个答案:

答案 0 :(得分:0)

您可以做的是编写一个简单的GUI程序。使用TKinter,在其中创建一个窗口和一个文本区域来显示json,一个你要输入的文本框,你想要看多少个对象,一个名为Next的按钮或者下一个要看的按钮和一个更多按钮保存。以下是每个项目的功能。

首先,你将在python中阅读完整的json并将其作为词典。

下一个按钮 - 这将根据TextBox中的值继续迭代。你可以编写一个自定义生成器,它将根据所需的值数量产生。

保存按钮 - :这会将当前的json保存到新的json中,或者如果可以的话,可以尝试编写一个函数来直接更新当前的json。

文本区域您应该获取字典并转换为json并显示Next Button的生成器的输出。

答案 1 :(得分:0)

不是最好的答案,但阅读JSON的问题似乎仅限于Jupyter Notebooks(甚至是笔记本电脑的限制)。

在Spyder中工作或从命令行运行可以避免原始问题中提到的Jupyter错误。

如果有人知道如何调整Jupyter以避免这个问题,那就太好了(对不起,我不知道怎么做)。

答案 2 :(得分:0)

如果您正在使用linux(或有机会将文件传输到* nix),您可能希望通过

检查文件中的行数。
wc -l myfile.json

让我们说,为了简单起见,您的文件有2530000行,并且您希望将它们分成每行100k行,您可以利用发行版中可用的任何命令将文件进一步拆分为所需的块然后一个接一个地编辑它们。

如果您对使用“linux方式”感到满意,请查看其他主题的一些提示,即 edit multi-GB file when vi editor doesn't work

我希望它有所帮助!

答案 3 :(得分:0)

我使用过的唯一一个处理大文件(我有 250MB 大小的文件)的查看器Dadroit。浏览速度快,自带搜索功能。

现在,我使用 vi 进行编辑。我搜索该位置并进行本地编辑。 Vim 或其他更简单的编辑器应该可以在 Windows 上运行。你试过 vscode 吗? 100MB 不应该太大。

另一个用于查看和编辑数据的出色终端工具是 Visidata。我在处理 json 文件时运气好坏参半。

答案 4 :(得分:-1)

对于编辑器,尝试记事本++ 对于语言,尝试Python 既然你没有给出你的数据结构,我就无法给出更多答案。