从一个类方法获取信息到另一种方法

问题描述 投票:0回答:1

[我正在尝试创建一堆类方法来读取.JSON文件的特定部分,并且在将信息从一种方法传递到另一种方法时遇到了麻烦,在这种情况下,我试图从'中获取dask.bag。 read_files'方法改成'split_to_requests'方法。我不确定我的错误在哪里,但是在“ test_split_requests”测试中运行单元测试失败。我在代码底部添加了测试。

    import json
    import pandas as pd
    from dask import bag

    class WeatherDataConverter:

        def __init__(self, *args, **kwargs):
            super(WeatherDataConverter, self).__init__(*args, **kwargs)
            self.meteo_bag = bag.Bag

        def read_files(self, files):
            dask_bag = bag.read_text(files).map(json.loads)
            return dask_bag

        def split_to_requests(self, dask_bag):
            data_pluck = dask_bag.flatten().pluck('data')
            request_request = data_pluck.pluck('requests')
            return request_request

        @staticmethod
        def flatten(bag):
            print(bag)

///////////////////////////////////////////////// ///////////////////////////////////////////////

    from unittest import TestCase
    from weather.WeatherDataConverter import WeatherDataConverter


    class TestWeatherDataConverter(TestCase):

        def __init__(self, *args, **kwargs):
            super(TestWeatherDataConverter, self).__init__(*args, **kwargs)
            self.converter = WeatherDataConverter()

        def test_read_file(self):
            dask_bag = self.converter.read_files('../data/*.json')
            assert dask_bag.count().compute() == 5

        def test_split_requests(self):
            dask_bag = self.converter.read_files('../data/*.json')
            dataframe = dask_bag.split_to_requests()
            print(dataframe)

这是失败代码:

    test_weatherDataConverter.py:35                 
    (TestWeatherDataConverter.test_split_requests)
    self = <tests.weather.test_weatherDataConverter.TestWeatherDataConverter         
    testMethod=test_split_requests>

        def test_split_requests(self):
            dask_bag = self.converter.read_files('../data/*.json')
    >       dataframe = dask_bag.split_to_requests()
    E       AttributeError: 'Bag' object has no attribute 
    'split_to_requests'

    test_weatherDataConverter.py:38: AttributeError

    Assertion failed
python-3.x class methods dask class-method
1个回答
0
投票

嗯,我最终自己找到了答案,因此,如果有人觉得有更好的方法随时发表评论,也许这会对任何人都有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.