我正在将 JSON 文件(来自 ajax 调用)转换为 CSV。
JSON文件发给我的时候是80kb。
当我将JSON文件的内容保存到一个.txt文件中时,它变成了291kb!
将.txt文件转为.csv文件后为240kb。
我从 ajax 调用中收到的 JSON 文件为什么比我创建的具有相同内容的 .txt 文件小得多?有什么方法可以减小最终产品的尺寸吗?
编辑:
这就是我获取文件大小的方式。
- 我找到了 AJAX 请求,并检查了它的文件大小。 Link .如您所见,它大约有 80kb。
- 我复制了请求的来源。 Link .
- 然后我将源代码复制并粘贴到一个空白的 .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)
最佳答案
JSON 是一种字符串格式,主要用于通信。如果我们想将 JSON 字符串保存在一个文件中,它将是一个文本文件。在这种情况下,JSON 或文本文件的任何其他内容都没有区别。
您正在从 Ajax 调用中接收 JSON 字符串,而不是 JSON 文件。您通过 HTTP 接收它,并且它是压缩的 (g-zipped)。因此,您正在将压缩文本的大小与您正在创建的平面文本进行比较。压缩您正在创建的文件,您将把它缩小到几乎相同的大小(取决于压缩工具和设置)。
关于json - 为什么 JSON 文件比具有相同内容的 .txt 文件小很多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48313216/