Signifant digits probably don't go beyond 4 or 5
Record your current node theme
import bpy
current_theme = bpy.context.user_preferences.themes.items()[0][0]
node_editor = bpy.context.user_preferences.themes[current_theme].node_editor
types = """\
color_node
converter_node
distor_node
filter_node
frame_node
gp_vertex
gp_vertex_select
group_node
group_socket_node
input_node
layout_node
matte_node
node_active
node_selected
output_node
pattern_node
script_node
selected_text
shader_node
texture_node
vector_node
wire
wire_inner
wire_select
"""
for c in types.split():
k = getattr(node_editor, c)
print(c, str(k[:])[1:-1].replace(' ', ''))
Set the Theme only
import bpy
current_theme = bpy.context.user_preferences.themes.items()[0][0]
node_editor = bpy.context.user_preferences.themes[current_theme].node_editor
settings = """\
color_node 0.8941177129745483,1.0,0.7882353663444519
converter_node 0.9098039865493774,1.0,0.960784375667572
distor_node 0.4549019932746887,0.5921568870544434,0.5921568870544434
filter_node 0.6784313917160034,0.6039215922355652,0.7529412508010864
frame_node 1.0,1.0,1.0,0.501960813999176
gp_vertex 0.0,0.0,0.0
gp_vertex_select 1.0,0.5215686559677124,0.0
group_node 0.5411764979362488,0.6117647290229797,0.572549045085907
group_socket_node 0.874509871006012,0.7921569347381592,0.20784315466880798
input_node 1.0,1.0,1.0
layout_node 0.6784313917160034,0.6039215922355652,0.7529412508010864
matte_node 0.5921568870544434,0.4549019932746887,0.4549019932746887
node_active 1.0,0.6666666865348816,0.250980406999588
node_selected 0.9450981020927429,0.3450980484485626,0.0
output_node 1.0,1.0,1.0
pattern_node 0.6784313917160034,0.6039215922355652,0.7529412508010864
script_node 0.6784313917160034,0.6039215922355652,0.7529412508010864
selected_text 0.7019608020782471,0.6117647290229797,0.6117647290229797
shader_node 0.6392157077789307,0.9098039865493774,1.0
texture_node 0.2392157018184662,0.9764706492424011,1.0
vector_node 0.6784313917160034,0.6039215922355652,0.7529412508010864
wire 1.0,1.0,1.0
wire_inner 1.0,1.0,1.0
wire_select 1.0,0.46274513006210327,0.0
"""
for configurable in settings.split('\n'):
if not configurable.strip():
continue
print(configurable)
attr_name, attr_value = configurable.split(' ')
attr_floats = [float(i) for i in attr_value.split(',')]
setattr(node_editor, attr_name, attr_floats)