为什么 JSON 文件比具有相同内容的 .txt 文件小得多?

Val*_*hio 2 json export-to-csv

我正在将 JSON 文件(来自 ajax 调用)转换为 CSV。

当JSON文件发送给我时,它是80kb。

当我将 JSON 文件的内容保存到 .txt 文件中时,它变成了 291kb!

将 .txt 文件转换为 .csv 文件后,大小为 240kb。

我从 ajax 调用收到的 JSON 文件如何比我创建的具有相同内容的 .txt 文件小得多?有没有办法减小最终产品的尺寸?

编辑:

这就是我获取文件大小的方式。

  1. 我找到了 AJAX 请求,并检查了它的文件大小。 链接。如您所见,它大约为 80kb。
  2. 我复制了请求的来源。 链接
  3. 然后我将源代码复制并粘贴到一个空白的 .txt 文件中。结果是一个大小为 291 kb 的 .txt 文件。

编辑:

我不认为 .txt 到 .csv 转换问题是问题,但这是我的代码:

import json
import csv
import re

with open('jjj.txt') as f:
    f = f.read()

parsed = json.loads(f)
unix_time = re.compile(r'(\d\d\d\d\d\d\d\d\d\d\d\d\d)')

data = parsed['d']['tables'][0]['rows']
for i in data:
    for a in range(len(i)):
        if a > 39 and a < 46:
            if i[a] != None:
                mo = unix_time.search(i[a])
                i[a] = mo.group(1)


file = open('json.csv', 'w', newline='')
csvwriter = csv.writer(file)
csvwriter.writerows(data)
Run Code Online (Sandbox Code Playgroud)

Rac*_*lan 5

JSON 是一种字符串格式,主要用于通信。如果我们想将 JSON 字符串保存在一个文件中,它将是一个文本文件。在这种情况下,JSON 或文本文件的任何其他内容之间没有区别。

您从 Ajax 调用接收 JSON 字符串,而不是 JSON 文件。您通过 HTTP 接收它,并且它被压缩(g-zipped)。因此,您正在将压缩文本的大小与您正在创建的平面文本进行比较。压缩您正在创建的文件,您将把它缩小到几乎相同的大小(取决于压缩工具和设置)。