How to get the color of a vertex group with python?
Finally the answer is found.
https://developer.blender.org/T82451
Thanks to Phillip
You need to read this from the evaluated object, see

import bpy

ob = bpy.context.object

depsgraph = bpy.context.evaluated_depsgraph_get()
object_eval = ob.evaluated_get(depsgraph)

#vertex colors are in fact stored per loop-vertex -&amp;gt; MeshLoopColorLayer
if ob.type == 'MESH':
    
    #how many loops do we have ?
    loops = len(object_eval.data.loops)
    verts = len(object_eval.data.vertices)
    print(&quot;--------------------------------------------&quot;)
    #go through each vertex color layer
    for vcol in object_eval.data.vertex_colors:
        # look into each loop's vertex ? (need to filter out double entries)
        visit = verts * [False]
        colors = {}
        
        for l in range(loops):
            v = object_eval.data.loops[l].vertex_index
            c = vcol.data[l].color
            print(&quot;Vertex {0} has Color {1}&quot;.format(v, (vcol.data[l].color[0],vcol.data[l].color[1],vcol.data[l].color[2])))
            if not visit[v]:
                colors[v] = c
                visit[v] = True
                
        sorted(colors)
        print(&quot;Vertex-Colors of Layer:&quot;, vcol.name)
        #print(colors)
#        for v, c in colors.items():
#            print(&quot;Vertex {0} has Color {1}&quot;.format(v, (c.r, c.g, c.b)))
#            
        print(&quot;&quot;)

The magic of depsgraph