[我正在尝试创建一堆类方法来读取.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
嗯,我最终自己找到了答案,因此,如果有人觉得有更好的方法随时发表评论,也许这会对任何人都有帮助。