2017-10-11 84 views
-3

我需要将一个Dataframe(转换为JSON格式)写入文件。这可以用一个班轮df.to_json()很容易地完成。当我将它写入文件时会出现问题,因为我需要将其他数据框追加到同一个文件中。 如何可以高效地完成将数据帧转换为json并将其写入文件并将新的数据帧添加到该文件

我使用的数据帧的方法df.to_json(orient='records',path_or_buf='filepath')

现在,如果我要被添加到该文件只那么它是如何实现的另一个数据框(写入文件,没有它加载到内存)

+0

对不起,但追加数据框到JSON是没有听说过。 Json是以某种方式合成的字符串。我建议你等待输出,直到你的数据框完整(使用pd.concat或类似的我猜) –

+0

仅以Json格式附加数据帧。不是字面上的数据框。其实我从S3获取数据,然后将其转换为数据帧,在清理后需要将其写入磁盘。随着下一次获取迭代,我必须将数据追加到同一个文件中。所以后来我可以在python Dataframe中读取整个数据并工作。 –

回答

0

下面的代码实现了我想要做的。

 filename='UserData' 
     if os.path.isfile(filename): 
      dicts=userData.to_dict(orient='records') 
      f = open(filename,"r+") 
      f.seek(-1,2) 
      f.write(json.dumps(dicts).replace('[',',',1)) 
      f.close() 
     else: 
      dicts = userData.to_dict(orient='records') 
      f = open(filename,"w") 
      f.write(json.dumps(dicts)) 
      f.close() 

所以,如果filename存在,那么,文件句柄将被定位到最后,并保持JSON结构[,所取代。

相关问题