Javascript GoogleCharts api:修复表中的列

Javascript GoogleCharts api:修复表中的列,javascript,google-visualization,Javascript,Google Visualization,我使用gviz_api创建了一个表。该表包含由字符串值和数值组成的列。api自动选择列自身呈现的顺序;但是,我希望渲染的顺序与我提供描述的顺序相同 为了创建表,我传入了一个描述,它是一个字典,数据是每行的字典列表。我认为,因为描述是一个字典,排序是不明确的,因此可以随机选择。有没有办法强制api使用我在描述中指定的列顺序或其他方式 以下是我的示例说明和数据代码: descr = {'field1': ('string', 'Field1'), 'field2': ('numbe

我使用gviz_api创建了一个表。该表包含由字符串值和数值组成的列。api自动选择列自身呈现的顺序;但是,我希望渲染的顺序与我提供描述的顺序相同

为了创建表,我传入了一个描述,它是一个字典,数据是每行的字典列表。我认为,因为描述是一个字典,排序是不明确的,因此可以随机选择。有没有办法强制api使用我在描述中指定的列顺序或其他方式

以下是我的示例说明和数据代码:

descr = {'field1': ('string', 'Field1'),
         'field2': ('number', 'Field2'),
         'field3': ('string', 'Field3'),
         'field4': ('string', 'Field3')}
data = [{'field1': 'value1-1', 'field2': value1-2, 'field3': 'value1-3', 'field4': 'value1-4},
        {'field1': 'value2-1', 'field2': value2-2, 'field3': 'value2-3', 'field4': 'value2-4}]

data_table = gviz_api.DataTable(description)
data_table.LoadData(data)
code = data_table.ToJSCode(stats_type_name + '_data')
以及事物实际呈现的顺序:

field3     field2      field1     field4
value1-3   value1-2    value1-1   value1-4
value2-3   value2-2    value2-1   value2-4
我希望事物出现的顺序与我在描述中指定的顺序相同:

field1     field2      field3     field4
value1-1   value1-2    value1-3   value1-4
value2-1   value2-2    value2-3   value2-4

所以我找到了一个黑客解决方案。通过观察,我注意到gviz_api在向表中添加列时使用字母顺序。我的列名有不同的标签(即('string','label')中的第二个条目不是按字母顺序排列的。为了解决这个问题,我在标签名前面加了一个数字(即('string','1label')),以确保列的顺序符合我的要求


如果有其他人找到了一个更简单的解决方案,请让我知道。

我决定从源头上纠正这个问题。我按照特定的顺序指定一个查询,并以同样的方式期望得到结果

我已对
gviz_api.py
第488行
)进行了局部修改

DataTables
现在将按照为创建
DataTable
提供的相同顺序显示/公开其数据(在
toJS()
toJSON()
等中返回)

我现在不需要一大群笨拙的
视图
来确保图表正常工作,这是一个额外的好处

基洛

Change: for key, value in sorted(table_description.items()):
To    : for key, value in table_description.items():