相当在文件中将多次出现的JSON数据打印到输出文件

时间:2016-05-02 08:58:47

标签: json

我正在尝试使用pprint函数打印一个带有以下数据的多次出现的JOSN数据文件。

数据文件的内容

  

{“_ abcd”:{“options”:{},“module”:“xxxx”,“crawler”:“1234567890”},“hash”:1048951621,“os”:null,“ip”:sgdgdfd ,“isp”:“ASGSFDF”,“port”:YYY,“hostnames”:[],“location”:{“city”:“rtyf”,“region_code”:“00”,“area_code”:null,“经度“:111.23344,”country_code3“:”xyz“,”country_name“:”qazwsx“,”postal_code“:null,”dma_code“:null,”country_code“:”yy“,”latitude“:1.11111},”timestamp “:”XXXXX“,”domains“:[],”org“:”FFFFF“,”data“:”单位ID:0 \ n--从属ID数据:\ t()\ n \ n单位ID:255 \ n--从属ID数据:\ t()\ n \ n“,”asn“:”44444“,”transport“:”tcp“,”ip_str“:”1.2.3.4“}   {“_ abcd”:{“options”:{},“module”:“yyyy”,“crawler”:“999999”},“hash”:35473835,“os”:null,“ip”:sgdgdfd,“isp “:”TYUUF“,”port“:YYY,”hostnames“:[],”location“:{”city“:”wewd“,”region_code“:”00“,”area_code“:null,”经度“: 222.3456,“country_code3”:“xyz”,“country_name”:“qazwsx”,“postal_code”:null,“dma_code”:null,“country_code”:“yy”,“latitude”:1.11111},“timestamp”:“ XXXXX“,”域“:[],”org“:”DDDD“,”data“:”单位ID:0 \ n--从属ID数据:\ t()\ n \ n单位ID:255 \ n--从属ID数据:\ t()\ n \ n“,”asn“:”44444“,”transport“:”tcp“,”ip_str“:”4.3.2.1“}   ...更多与上述相同的数据

我在这个论坛中找到了代码并修改了它以将输出写入文件:

import json
from pprint import pprint

with open('data.json') as data_file:    
data = json.load(data_file)

with open('outfile.json,'w') as data_out

pprint(data,stream=data_out)

如果日期文件只包含1次数据,则它可以正常工作,并且当它有多次出现时会失败。

如何修改代码以使其适用于多次出现的数据?

1 个答案:

答案 0 :(得分:1)

  

如果日期文件只包含1次数据,则它可以正常工作,并且当它有多次出现时会失败。

如果你的意思是

{"_abcd": ...}
{"_abcd": ...}
{"_abcd": ...}

这是无效的JSON。要使其有效,请将这些对象包装在一个数组中,其中开头为[,中间为逗号,最后为]

[
{"_abcd": ...},
{"_abcd": ...},
{"_abcd": ...}
]