为什么JSON文件比具有相同内容的.txt文件小得多?
我正在将JSON文件(从ajax调用)转换为CSV 当JSON文件发送给我时,它是80kb 当我将JSON文件的内容保存到.txt文件中时,它变成了291kb 将.txt文件转换为.csv文件后,其大小为240kb 我从ajax调用中收到的JSON文件如何比我用相同内容创建的.txt文件小得多?有没有办法减少最终产品的尺寸 编辑: 这就是我获取文件大小的方式为什么JSON文件比具有相同内容的.txt文件小得多?,json,export-to-csv,Json,Export To Csv,我正在将JSON文件(从ajax调用)转换为CSV 当JSON文件发送给我时,它是80kb 当我将JSON文件的内容保存到.txt文件中时,它变成了291kb 将.txt文件转换为.csv文件后,其大小为240kb 我从ajax调用中收到的JSON文件如何比我用相同内容创建的.txt文件小得多?有没有办法减少最终产品的尺寸 编辑: 这就是我获取文件大小的方式 我找到AJAX请求,并检查其文件大小。正如你所看到的,它大约是80kb 我复制了请求的来源 然后我将源代码复制并粘贴到一个空白的.txt文
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)
导入json
导入csv
进口稀土
将open('jjj.txt')作为f:
f=f.read()
parsed=json.loads(f)
unix\u time=re.compile(r'(\d\d\d\d\d\d\d\d\d\d\d\d\d\d))
数据=已分析['d']['tables'][0]['rows']
对于数据中的i:
对于范围内的a(len(i)):
如果a>39且a<46:
如果我[a]!=无:
mo=unix\u time.search(i[a])
i[a]=mo.group(1)
文件=打开('json.csv','w',换行符='')
csvwriter=csv.writer(文件)
csvwriter.writerows(数据)
JSON是一种主要用于通信的字符串格式。如果我们想将JSON字符串保存在一个文件中,它将是一个文本文件。在这种情况下,JSON和文本文件的任何其他内容之间没有区别
您正在从Ajax调用接收JSON字符串,而不是JSON文件。您通过HTTP接收它,并且它被压缩(g-zipped)。因此,您正在将压缩文本的大小与正在创建的平面文本进行比较。压缩您正在创建的文件,然后将其压缩到几乎相同的大小(取决于压缩工具和设置)。使用什么工具转换文件?从哪里获得文件大小?如果不1)查看代码,2)查看示例输入和3)查看示例输出,则无法回答此问题。我们对你的应用程序或代码一无所知。所以这里发布的任何东西都只是一个猜测。你的JSON可能已经被压缩了。请参阅浏览器开发人员控制台中的“网络”选项卡。抱歉,我缺少信息。我发布了检索JSON文件的步骤,以及从.txt到.csv的转换代码。@AntiMoron也许我应该选择其他措辞。读我第二段的第一句话,我觉得它更清楚。我将删除你提到的第一句话。你是对的。当我压缩
jjj.txt
时,它变成了74kb。这太棒了,但我无法将zip文件转换为csv文件。有没有办法创建一个csv文件,该文件包含相同的数据,但压缩到约80kb大小?我不知道为什么要将JSON字符串保存到一个名为csv的文件中。不管怎样,文本文件通常压缩70-80%,这就是你得到的。不,据我所知,没有办法压缩一个文本文件(JSON、CSV或其他文件),而实际上。。。。嗯,创建一个压缩文件。有些工具隐藏了压缩,所以你看不到它,但这并不能改变事实。例如,如果您使用压缩硬盘,它上的所有文件都会在您看不到的情况下自动压缩和解压缩。告诉我们你想做什么,我们会帮助你。@RacilHilan我正在抓取另一个网站的数据库(我称之为“他们”),并将其存储在我自己网站的数据库中。他们通过JSON文件和ajax调用传输数据。为了将他们的记录添加到我自己的数据库中,我需要将他们的JSON文件转换为CSV文件。有数百GB的数据要添加,所以我希望CSV文件尽可能小。这不是所谓的网站抓取。您只是在使用他们的API(假设他们有意将其公开)。您应该处理返回的JSON字符串,并将其保存在真实的数据库中,而不是文本CSV文件中。这样做会使你的问题变得无关紧要。