【发布时间】:2020-01-10 08:09:20
【问题描述】:
我正在尝试创建一堆类方法来读取 .JSON 文件的特定部分,并且无法从一种方法获取信息到另一种方法,在这种特殊情况下,我试图从'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)
/////////////////////////////////////// //////////////////////////////////////////////p>
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
【问题讨论】:
-
您正在尝试调用
WeatherDataConverter.flatten,但您的课程WeatherDataConverter没有方法flatten。 -
@Heike 是的,这是错误之一,我会编辑它
标签: python-3.x class methods dask class-method