使用Python将Json格式转换为以换行符分隔的Json

时间:2018-08-28 12:58:27

标签: python

BigQuery limitations for loading data from Json中的一个是:

JSON data must be newline delimited

我有此代码:

def create_jsonlines(self, original):
    if isinstance(original, str):
        original = json.loads(original)
    return '\n'.join([json.dumps(item) for _, item in original.items()])

这会将常规的压缩json写入Google Storage:

regular = prefix + '/regular.json.gz'      
 storage.Bucket('bucket').item(regular).write_to(gzip.compress(bytes((data),encoding='utf8')), 'application/json')

这会将常规的压缩json写入Google Storage:

 newline = prefix + '/newline.json.gz'   
 storage.Bucket('bucket').item(newline).write_to(gzip.compress(bytes((self.create_jsonlines(data)),encoding='utf8')), 'application/json')

常规json是确定。它包含应有的一切。但是我不能真正使用它,因为BigQuery不支持这种格式。

换行json是不好。大量数据丢失。.显然我将其转换为错误。

data是一个转储,如下所示:data = json.dumps(result, sort_keys=True)

如何修复create_jsonlines函数?

0 个答案:

没有答案