所以我有这个CSV文件,大小为380 MB左右。 我为此创建了一个空数据结构:{ID1 {day1:[[flow,hour1],[flow,hour2] ... [flow,hour23]],day2:[...] ... day30:[ ...]},ID2 ...}。 我从csv中提取内容,并在下面的循环中填充了此结构,这大约需要3分钟。 每30天,每24小时大约有2000个ID。 然后,当我尝试将此填充的结构转储到json文件中时,花费了数小时,并且输出文件的大小超过了3 GB,然后我退出了脚本。 由于JSON应该更紧凑,这是否应该发生? 因为我尝试使用较小的比例尺(1000个条目)并且效果很好。 有解决这个问题的好方法吗? 谢谢。

注意:'stations'是row ['ID']也应匹配的站点列表。

import csv

import json, pprint, datetime, time

meta_f = open( metadata_path , 'rb' )

meta_read = csv.DictReader(meta_f,delimiter='\t')

hour_f = open(hourly_path,'r')

hour_read = csv.DictReader(hour_f, delimiter=',')

stations = []

no_coords = []

for i,row in enumerate(meta_read):

if not row['Longitude'] or not row['Latitude']:

no_coords.append(row['ID'])

elif in_box(row,bound):

stations.append(row['ID'])

data={}

number_of_days=30

days={}

for i in range(1,number_of_days+1):

days[i]=[]

for station in stations:

data[int(station)]=days

with open('E:/pythonxy/Projects/UP/json_data.txt','wb') as f:

json.dump({},f)

f.close()

with open('E:/pythonxy/Projects/UP/json_data.txt','rb') as f:

d=json.load(f)

#i=0

t0=time.time()

for row in hour_read:

#if i>1000:

#break

if row['Station'] in stations:

#print row['Station']

t=datetime.datetime.strptime(row['TimeStamp'], '%m/%d/%Y %H:%M:%S')

data[int(row['Station'])][int(t.day)]+=[[row['TotalFlow'],t.hour]]

#i+=1

#print i

d.update(data)

print time.time()-t0

t0=time.time()

with open('E:/pythonxy/Projects/UP/json_data.txt','wb') as f:

json.dump(d,f)

f.close()

print time.time()-t0

print 'DONE'

python json文件太大_python - python json.dump创建的文件太大 - 堆栈内存溢出相关推荐

  1. python合并数组输出重复项_python - 不同数组项的所有可能组合[重复] - 堆栈内存溢出...

    您需要笛卡尔积 . >>> arrays = [ ... [[1, 2], [3, 4]], ... [[4, 5], [5, 6]], ... [[7, 8], [8, 9]], ...

  2. python小波分解与重构_python - 使用pyWavelets进行多级局部小波重构 - 堆栈内存溢出...

    我设法编写了自己的wrcoef函数版本,该版本似乎可以正常工作: import pywt import numpy as np def wrcoef(X, coef_type, coeffs, wav ...

  3. python创建表格怎么只能65536_python - 在Python和Excel 2010中使用Win32时如何克服65536 Excel行限制 - 堆栈内存溢出...

    我可以使用大于65536行的输入工作表来创建Excel 2010数据透视表. 当我使用win32com.client和'Excel.Application'在Python中尝试此操作时,失败并显示以下 ...

  4. python open permission denied_python - Image.open PermissionError:[Errno 13]权限被拒绝: - 堆栈内存溢出...

    我正在制作一个图像分类器,以使用Python和TensorFlow对火箭和飞机进行分类,但是我无法使用Pil.Image.Open加载我的训练图像文件夹. 这是我的代码: train_data = & ...

  5. ios 从服务器获取文件,ios - 如何将远程文件(从远程SMB服务器获取)提供给某些请求 - 堆栈内存溢出...

    当某些请求命中服务器(在移动应用程序上运行的服务器)时,我正在尝试将视频文件作为响应提供. 该视频文件可以存储在本地,也可以是外部存储的. 我开始尝试提供位于SMB服务器上的文件,所以我尝试使用此代码 ...

  6. python脚本怎么打印日志_python 接口测试1 --如何创建和打印日志文件

    python自带的logging实在是不好用,推荐使用logbook 思路如下: 1.创建path.py文件,获取工程根路径 2.创建log.py文件,在工程根路径下创建日志文件(文件名称按日期命名) ...

  7. python 序列化压缩成字符串_Python 将json序列化后的字符串转换成字典(推荐)

    一般而言下面的就可以完成需求了. def convertToDic(data): jsonDic=json.loads(data) return dict(jsonDic) 但实际应用中可能会出现一些 ...

  8. python json()是什么函数_python 处理 json 四个函数dumps、loads、dump、load的区别

    1 .json.dumps() 函数是将一个 Python 数据类型列表(可以理解为字典)进行json格式的编码(转换成字符串,用于传播) eg, dict = {"age": & ...

  9. python读excel 包含格式_python里读写excel等数据文件的几种常用方式

    python处理数据文件第一步是要读取数据,文件类型主要包括文本文件(csv.txt等).excel文件.数据库文件.api等. 下面整理下python有哪些方式可以读取数据文件. 1. python ...

  10. python程序多次运行_Python内怎么使同一个.py文件多次运行?

    原博文 2020-08-03 15:57 − 当在多个客户端同时连接一个服务端时需要同时运行多个客户端所在的.py文件,但默认上我们运行了一次后如果再想运行这个.py文件,则被要求停下当前运行的.py ...

最新文章

  1. 结对开发--求二维数组的最大子数组
  2. 基于hsv的亮度调整算法_基于手绘工程图离线识别的预处理研究精品论文推荐
  3. 01_学习java WEB涉及到的相关技术
  4. 学习STL map, STL set之数据结构基础
  5. JavaFX技巧6:使用透明颜色
  6. 阿里高工流生 | 云原生时代的 DevOps 之道
  7. Python自学之路NO.1-Python的安装与配置
  8. @value注解取不到值_教学笔记:Java注解及自定义注解示例
  9. armbian搭建php环境,N1刷armbian后搭建lamp环境+可道云管理
  10. 141种各类工业常用软件
  11. catia中的螺旋伞齿轮画法,基于CATIA的螺旋锥齿轮参数化建模方法研究
  12. Unity3D游戏开发之路:一月工作总结
  13. JSCORE01-(达)
  14. scratch的官方版本和其他的改编版本/小喵科技Kittenblock/snap!/TurboWarp
  15. android 生成条码,Android -条形码的生成
  16. unity3d shader之God Ray上帝之光
  17. 解决Google Chrome浏览器字体模糊的问题
  18. 中秋赏月地图出炉,跟随锦江之星去赏月
  19. Sklearn-preprocessing.scale/StandardScaler/MinMaxScaler
  20. 史上最全的Uboot常用命令汇总(超全面!超详细!)收藏这一篇就够了

热门文章

  1. 曾经“杀手级”的桌面语言 Java 将要退隐江湖?
  2. 传统汽车被“智能”打败?且看汽车进化的黄金十年!
  3. 周年直播倒计时2天,攒足惊喜等你开场! | MindSpore 开源一周年
  4. C 语言怎么可能被淘汰呢?
  5. 腾讯回应“QQ 冻结”;高德上线“家人地图”惹争议;Linux 内核讨论引入 Rust 代码| 极客头条...
  6. ​微信Android版支持改微信号,淘宝硬核拒绝改名要求;5G 套餐价格松动;Kotlin 1.4 第二个预览版发布|极客头条...
  7. 基于容器的虚拟化资源调度系统架构设计 | 原力计划
  8. IBM 重磅开源 Power 芯片指令集!国产芯迎来新机遇?
  9. 工程师与项目经理之间差距何在?
  10. 2019 年开源数据库报告发布:MySQL 仍卫冕!