First of all, thank for your generous help! From everyone's suggestion, I try various methods and observe what is different!
temp = {{a, b, c}, {1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
keys = ToString /@ First@temp;
values = Rest@temp;
Dataset[Association /@ MapThread[Rule, {keys, #}] & /@ values]
Dataset[Association /@ (MapThread[Rule, {keys, #}] & /@ values)]
The second dataset can match my imagination of structural data. But if keys = First@temp;
keys = First@temp;
Dataset[Association /@ MapThread[Rule, {keys, #}] & /@ values]
Dataset[Association /@ (MapThread[Rule, {keys, #}] & /@ values)]
Although there is no difference in the appearance of the dataset, the actual structure is not the same.
{{<|a -> 1|>, <|b -> 2|>, <|c -> 3|>}, {<|a -> 4|>, <|b -> 5|>, <|c ->
6|>}, {<|a -> 7|>, <|b -> 8|>, <|c -> 9|>}}
{<|a -> 1, b -> 2, c -> 3|>, <|a -> 4, b -> 5, c -> 6|>, <|a -> 7,
b -> 8, c -> 9|>}