code: def test_load_dataclass_dict_from_csv_list_dict(self):
      dataclass_objs = [
          TestDataclass2("a", 1),
          TestDataclass2("a", 2),
          TestDataclass2("b", 3),
          TestDataclass2("c", 4),
          TestDataclass2("c", 4),
          TestDataclass2("c", 4),
      ]
      with tempfile.TemporaryDirectory(
          prefix=f"{TestDataUtils}"
      ) as tempdir:
          csv_file_name = Path(tempdir) / "data.csv"
          save_dataclass_objs_to_headered_csv(
              dataclass_objs, csv_file_name
          )
          test_dict = load_dataclass_dict_from_csv(
              csv_file_name, TestDataclass2, "a", list_per_key=True
          )
          self.assertEqual(len(test_dict), 3)
          self.assertEqual([x.b for x in test_dict["a"]], [1, 2])
          self.assertEqual([x.b for x in test_dict["b"]], [3])
          self.assertEqual([x.b for x in test_dict["c"]], [4, 4, 4])
  
imports: import os
  import tempfile
  import unittest
  import unittest.mock
  from dataclasses import dataclass
  from pathlib import Path
  from pytorchvideo.data.utils import DataclassFieldCaster, export_video_array, load_dataclass_dict_from_csv, save_dataclass_objs_to_headered_csv
  from pytorchvideo.data.video import VideoPathHandler
  from utils import temp_encoded_video
label_desc: Use image node_id 5 for calling the TestDataUtils obj's underlying member method code with example usage: obj.test_load_dataclass_dict_from_csv_list_dict() without return types