Skip to content

Commit 2c3dfe9

Browse files
committed
fix(data_frame): parsing empty bool value as False
1 parent 46b66fe commit 2c3dfe9

File tree

2 files changed

+16
-0
lines changed

2 files changed

+16
-0
lines changed

influxdb_client/client/flux_csv_parser.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,8 @@ def _to_value(self, str_val, column):
272272
if str_val == '' or str_val is None:
273273
default_value = column.default_value
274274
if default_value == '' or default_value is None:
275+
if (self._serialization_mode is FluxSerializationMode.dataFrame) and "boolean" == column.data_type:
276+
return self._to_value('false', column)
275277
return None
276278
return self._to_value(default_value, column)
277279

tests/test_FluxCSVParser.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,20 @@ def test_pandas_column_datatype(self):
263263
self.assertEqual('bool', df.dtypes['value4'].name)
264264
self.assertEqual('float64', df.dtypes['value5'].name)
265265

266+
def test_pandas_null_bool_types(self):
267+
data = "#datatype,string,long,dateTime:RFC3339,dateTime:RFC3339,string,string,string,string,long,unsignedLong,string,boolean,double\n" \
268+
"#group,false,false,true,true,true,true,true,true,false,false,false,false,false\n" \
269+
"#default,_result,,,,,,,,,,,,\n" \
270+
",result,table,_start,_stop,_field,_measurement,host,region,value1,value2,value3,value4,value5\n" \
271+
",,0,1977-09-21T00:12:43.145224192Z,2018-07-16T11:21:02.547596934Z,free,mem,A,west,121,11,test,true,6.56\n" \
272+
",,0,1977-09-21T00:12:43.145224192Z,2018-07-16T11:21:02.547596934Z,free,mem,A,west,121,11,test,,6.56\n"
273+
274+
parser = self._parse(data=data, serialization_mode=FluxSerializationMode.dataFrame,
275+
response_metadata_mode=FluxResponseMetadataMode.full)
276+
df = list(parser.generator())[0]
277+
print(df.to_string())
278+
self.assertEqual('bool', df.dtypes['value4'].name)
279+
266280
def test_parse_without_datatype(self):
267281
data = ",result,table,_start,_stop,_field,_measurement,host,region,_value2,value1,value_str\n" \
268282
",,0,1677-09-21T00:12:43.145224192Z,2018-07-16T11:21:02.547596934Z,free,mem,A,west,121,11,test\n" \

0 commit comments

Comments
 (0)