添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

使用Python删除json文件中的一个新的换行。

3 人关注

我正在从Firebase下载数据,将其导出为json文件。在这之后,我想把它上传到bigquery中,但我需要删除新的换行,以便big query接受它。

{   "ConnectionTime": 730669.644775033, 
    "objectId": "eHFvTUNqTR", 
    "CustomName": "Relay Controller", 
    "FirmwareRevision": "FW V1.96", 
    "DeviceID": "F1E4746E-DCEC-495B-AC75-1DFD66527561", 
    "PeripheralType": 9, 
    "updatedAt": "2016-12-13T15:50:41.626Z", 
    "Model": "DF Bluno", 
    "HardwareRevision": "HW V1.7", 
    "Serial": "0123456789", 
    "createdAt": "2016-12-13T15:50:41.626Z", 
    "Manufacturer": "DFRobot"}
    "ConnectionTime": 702937.7616419792, 
    "objectId": "uYuT3zgyez", 
    "CustomName": "Relay Controller", 
    "FirmwareRevision": "FW V1.96", 
    "DeviceID": "F1E4746E-DCEC-495B-AC75-1DFD66527561", 
    "PeripheralType": 9, 
    "updatedAt": "2016-12-13T08:08:29.829Z", 
    "Model": "DF Bluno", 
    "HardwareRevision": "HW V1.7", 
    "Serial": "0123456789", 
    "createdAt": "2016-12-13T08:08:29.829Z", 
    "Manufacturer": "DFRobot"}

这是我所需要的,但除了手动操作外,我不知道如何做到这一点。

{"ConnectionTime": 730669.644775033,"objectId": "eHFvTUNqTR","CustomName": "Relay Controller","FirmwareRevision": "FW V1.96","DeviceID": "F1E4746E-DCEC-495B-AC75-1DFD66527561","PeripheralType": 9,"updatedAt": "2016-12-13T15:50:41.626Z","Model": "DF Bluno","HardwareRevision": "HW V1.7","Serial": "0123456789","createdAt": "2016-12-13T15:50:41.626Z","Manufacturer": "DFRobot"}
{"ConnectionTime": 702937.7616419792, "objectId": "uYuT3zgyez", "CustomName": "Relay Controller", "FirmwareRevision": "FW V1.96", "DeviceID": "F1E4746E-DCEC-495B-AC75-1DFD66527561", "PeripheralType": 9, "updatedAt": "2016-12-13T08:08:29.829Z", "Model": "DF Bluno", "HardwareRevision": "HW V1.7", "Serial": "0123456789", "createdAt": "2016-12-13T08:08:29.829Z", "Manufacturer": "DFRobot"}

我正在使用python加载json,读取它,然后写一个新的json,但无法弄清正确的代码。谢谢你!"。

here is the outline for my python code

import json
with open('nospacetest.json', 'r') as f:
  data_json=json.load(f)
#b= the file after code for no line breaks is added
with open('testnoline.json', 'w') as outfile:
  json.dump=(b, outfile)
    
python
json
pretty-print
linefeed
W. Stephens
W. Stephens
发布于 2017-06-28
2 个回答
Shai
Shai
发布于 2017-06-28
已采纳
0 人赞同

你只需要确保 indent=None ,当你 dump 你的数据到json。

with open('testnoline.json', 'w') as outfile:   
    json.dump(data_json, outfile, indent=None)

Quoting from the doc:

如果indent是一个非负整数,那么JSON数组元素和对象成员将以该缩进级别进行漂亮打印。缩进级别为0或负数,将只插入新行。None(默认)选择最紧凑的表示方法。

非常感谢你,但这部分起作用了。现在它不能将数据集彼此分开。有什么建议吗?
顺便说一下, indent=None 是默认的。
Shai
@smarx 当然。在答案中引用的文件中明确地这样说。
Right, I'm just not sure why you included indent=None in your code.
@W.Stephens 不清楚该文件的格式是什么。它是否以 [ 开始,以 ] 结束?字典之间是否有逗号?(你分享的东西没有。)
user94559
user94559
发布于 2017-06-28
0 人赞同

从字里行间看,我认为输入格式可能是一个单一的JSON数组,而所需的输出是该数组元素的新行分隔的JSON表示。如果是这样,这可能就是所需的全部内容。