diff --git a/mmengine/config/config.py b/mmengine/config/config.py
index 05012fe82cfe09850ea1ca951a7831e02d2505ff..0e06580261a3a61a7e934b5390d46a7c8848fc8b 100644
--- a/mmengine/config/config.py
+++ b/mmengine/config/config.py
@@ -481,6 +481,7 @@ class Config:
 
                 def is_base_line(c):
                     return (isinstance(c, ast.Assign)
+                            and isinstance(c.targets[0], ast.Name)
                             and c.targets[0].id == BASE_KEY)
 
                 base_code = next((c for c in codes if is_base_line(c)), None)
diff --git a/tests/data/config/py_config/test_py_modify_key.py b/tests/data/config/py_config/test_py_modify_key.py
new file mode 100644
index 0000000000000000000000000000000000000000..f2dbbf03b1f2ab564d363eeeb8667e33dda1e6f4
--- /dev/null
+++ b/tests/data/config/py_config/test_py_modify_key.py
@@ -0,0 +1,4 @@
+# Copyright (c) OpenMMLab. All rights reserved.
+# Support modify value in config.
+item1 = dict()
+item1['a'] = 1
diff --git a/tests/test_config/test_config.py b/tests/test_config/test_config.py
index aed3e81772d16e546bc70e0de0b23ff7a8604846..671bdc1283e6d5fb22abc9db851ef343e6417129 100644
--- a/tests/test_config/test_config.py
+++ b/tests/test_config/test_config.py
@@ -658,6 +658,13 @@ class TestConfig:
         assert cfg['item1'] == 1
         assert cfg['item2'] == 2
 
+        # Test support modifying the value of dict without defining base
+        # config.
+        cfg_file = osp.join(self.data_path,
+                            'config/py_config/test_py_modify_key.py')
+        cfg = Config._file2dict(cfg_file)[0]
+        assert cfg == dict(item1=dict(a=1))
+
     def _merge_recursive_bases(self):
         cfg_file = osp.join(self.data_path,
                             'config/py_config/test_merge_recursive_bases.py')