在Python Dask中保存为文本时,对象{…}既不是字节对象,也没有编码方法

在Python Dask中保存为文本时,对象{…}既不是字节对象,也没有编码方法,python,dask,Python,Dask,我有一个很大的json文件,我用Python中的Dask读取它。然后我做了一些调整和过滤,并再次尝试将其保存到json def flatten(record): return { 'id': record['id'], 'title': record['title'], 'year': record['year'], ... } if __name__ == '__main__': dd = db.re

我有一个很大的
json
文件,我用Python中的Dask读取它。然后我做了一些调整和过滤,并再次尝试将其保存到
json

def flatten(record):
    return {
        'id': record['id'],
        'title': record['title'],
        'year': record['year'],
         ...
    }


if __name__ == '__main__':
    dd = db.read_text('data.json',).map(json.loads)
    dd.filter(lambda x: 'title' in x.keys()) \
        .map(flatten) \
        .to_textfiles('*.json', encoding='utf-8')
首先,我过滤掉所有没有字段
title
的对象。然后,使用
map
,删除所有不需要的字段,并创建一些新字段。最后,我再次调用
to_textfiles
将其保存到
json

def flatten(record):
    return {
        'id': record['id'],
        'title': record['title'],
        'year': record['year'],
         ...
    }


if __name__ == '__main__':
    dd = db.read_text('data.json',).map(json.loads)
    dd.filter(lambda x: 'title' in x.keys()) \
        .map(flatten) \
        .to_textfiles('*.json', encoding='utf-8')
然而,我得到了错误

TypeError: Object {...here goes the first object as I have created it...} is neither a bytes object nor has an encode method
对象是有效的,并在在线验证器中进行测试。

需要一个包,其中的元素是文本。正如在操作之前使用
json.loads
映射一样,在编写以下代码之前,您需要使用
json.dumps
映射:

.map(json.dumps).to_textfiles('*.json', encoding='utf-8')