diff --git a/pyseeyou/node_visitor.py b/pyseeyou/node_visitor.py
index 6f80021..de6259e 100644
--- a/pyseeyou/node_visitor.py
+++ b/pyseeyou/node_visitor.py
@@ -168,7 +168,7 @@ class ICUNodeVisitor(NodeVisitor):
     def _get_key_value(self, items):
         key, value = None, None
         for item in items:
-            if not item:
+            if item is None:
                 continue
 
             elif isinstance(item, str):

diff --git a/test/test_format.py b/test/test_format.py
index 6951813..254071b 100644
--- a/test/test_format.py
+++ b/test/test_format.py
@@ -66,3 +66,11 @@ def test_format_tree():
 
     plural = format_tree(ast, {'NUM_TICKETS': 43}, 'en')
     assert plural == '42 ticketerinos.'
+
+
+def test_format_empty_string():
+    template = '{number, plural, =1 {} other {#}}'
+
+    result = format(template, {'number': 1}, 'en')
+
+    assert result == ''
diff --git a/test/test_locales.py b/test/test_locales.py
index 40233b6..33d9d33 100644
--- a/test/test_locales.py
+++ b/test/test_locales.py
@@ -2,6 +2,7 @@ import pytest
 
 from pyseeyou.locales import get_parts_of_num, lookup_closest_locale, get_cardinal_category
 
+
 def test_get_parts_of_num():
     assert get_parts_of_num('1') == (1, 1, 0, 0, 0, 0)
     assert get_parts_of_num('1.0') == (1.0, 1, 1, 0, 0, 0)
@@ -11,12 +12,14 @@ def test_get_parts_of_num():
     assert get_parts_of_num('1.03') == (1.03, 1, 2, 2, 3, 3)
     assert get_parts_of_num('1.230') == (1.230, 1, 3, 2, 230, 23)
 
+
 def test_lookup_closest_locale():
-    dummy_dict = { 'uk': 'Ukrainian', 'fr': 'French' }
+    dummy_dict = {'uk': 'Ukrainian', 'fr': 'French'}
 
     assert lookup_closest_locale('fr_FR', dummy_dict) == 'fr'
     assert not lookup_closest_locale('be-BY', dummy_dict)
 
+
 def test_get_cardinal_category():
     assert get_cardinal_category('2.0', 'ar') == 'two'
     assert get_cardinal_category('13', 'ar') == 'many'
diff --git a/test/test_node_visitor.py b/test/test_node_visitor.py
index 998db42..1f98ffd 100644
--- a/test/test_node_visitor.py
+++ b/test/test_node_visitor.py
@@ -113,3 +113,10 @@ def test_msg_with_unicode_chars():
 
     i = ICUNodeVisitor({})
     assert i.visit(msg) == '☹'
+
+
+def test_empty_msg():
+    msg = ICUMessageFormat.parse('{number, plural, =1 {} other {#}}')
+    i = ICUNodeVisitor({'number': 1})
+
+    assert i.visit(msg) == ''

Using empty string in conditional formatting return None
Empty strings are incorrectly formatted, example:

`>> s = '{number, plural, =1 {} other {#}}'`
`>> format(s, {'number': 1},' en')`
`'None'`

Expected result is ''

test/test_format.py::test_format_empty_string test/test_node_visitor.py::test_empty_msg
test/test_format.py::test_format test/test_format.py::test_format_tree test/test_locales.py::test_get_parts_of_num test/test_locales.py::test_lookup_closest_locale test/test_locales.py::test_get_cardinal_category test/test_node_visitor.py::test_process_select_statement test/test_node_visitor.py::test_use_other_statement_if_no_select_arg test/test_node_visitor.py::test_process_plural_statement test/test_node_visitor.py::test_plural_statement_with_offset test/test_node_visitor.py::test_plural_dict_uses_string test/test_node_visitor.py::test_plural_dict_with_decimals test/test_node_visitor.py::test_msg_with_basic_replace test/test_node_visitor.py::test_msg_with_unicode_chars