Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谷歌图表输入数据_Python_Google Visualization - Fatal编程技术网

Python 谷歌图表输入数据

Python 谷歌图表输入数据,python,google-visualization,Python,Google Visualization,我有一个python脚本来为Google图表构建输入。它正确地创建列标题和正确的行数,但重复每行中最后一行的数据。我尝试显式地设置行索引,而不是使用循环(这在实践中不起作用,但应该在测试中起作用)。它仍然为每个条目提供相同的值。当我将此代码与HTML用户表单放在同一页面上时,它也可以工作 end1=数据表中的行数 end2=数据表中由列标题列表表示的列数 viewData=存储在数据库中的数据 c = connections['default'].cursor() c.execute("SELE

我有一个python脚本来为Google图表构建输入。它正确地创建列标题和正确的行数,但重复每行中最后一行的数据。我尝试显式地设置行索引,而不是使用循环(这在实践中不起作用,但应该在测试中起作用)。它仍然为每个条目提供相同的值。当我将此代码与HTML用户表单放在同一页面上时,它也可以工作

end1=数据表中的行数

end2=数据表中由列标题列表表示的列数

viewData=存储在数据库中的数据

c = connections['default'].cursor()
c.execute("SELECT * FROM {0}.\"{1}\"".format(analysis_schema, viewName))
viewData=c.fetchall()
curDesc = c.description
end1 = len(viewData)
end2 = len(curDesc)
创建列标题:

colOrder=[curDesc[2][0]]
if activityOrCommodity=="activity":
    tableDescription={curDesc[2][0] : ("string", "Activity")}
elif (activityOrCommodity == "commodity") or (activityOrCommodity == "aa_commodity"):   
    tableDescription={curDesc[2][0] : ("string", "Commodity")}
for i in range(3,end2 ):
    attValue =  curDesc[i][0]
    tableDescription[curDesc[i][0]]= ("number", attValue)
    colOrder.append(curDesc[i][0])
data=[]
values = {}
for i in range(0,end1):
    for j in range(2, end2):
        if j == 2:
            values[curDesc[j][0]] = viewData[i][j].encode("utf-8")  
        else:
            values[curDesc[j][0]] = viewData[i][j]
    data.append(values)

dataTable = gviz_api.DataTable(tableDescription)
dataTable.LoadData(data)

return dataTable.ToJSon(columns_order=colOrder)
var dt = new google.visualization.DataTable({cols:[{id:'activity',label:'Activity',type:'string'},{id:'size',label:'size',type:'number'},{id:'compositeutility',label:'compositeutility',type:'number'}],rows:[{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]}]}, 0.6);
创建行数据:

colOrder=[curDesc[2][0]]
if activityOrCommodity=="activity":
    tableDescription={curDesc[2][0] : ("string", "Activity")}
elif (activityOrCommodity == "commodity") or (activityOrCommodity == "aa_commodity"):   
    tableDescription={curDesc[2][0] : ("string", "Commodity")}
for i in range(3,end2 ):
    attValue =  curDesc[i][0]
    tableDescription[curDesc[i][0]]= ("number", attValue)
    colOrder.append(curDesc[i][0])
data=[]
values = {}
for i in range(0,end1):
    for j in range(2, end2):
        if j == 2:
            values[curDesc[j][0]] = viewData[i][j].encode("utf-8")  
        else:
            values[curDesc[j][0]] = viewData[i][j]
    data.append(values)

dataTable = gviz_api.DataTable(tableDescription)
dataTable.LoadData(data)

return dataTable.ToJSon(columns_order=colOrder)
var dt = new google.visualization.DataTable({cols:[{id:'activity',label:'Activity',type:'string'},{id:'size',label:'size',type:'number'},{id:'compositeutility',label:'compositeutility',type:'number'}],rows:[{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]}]}, 0.6);
javascript输出示例:

colOrder=[curDesc[2][0]]
if activityOrCommodity=="activity":
    tableDescription={curDesc[2][0] : ("string", "Activity")}
elif (activityOrCommodity == "commodity") or (activityOrCommodity == "aa_commodity"):   
    tableDescription={curDesc[2][0] : ("string", "Commodity")}
for i in range(3,end2 ):
    attValue =  curDesc[i][0]
    tableDescription[curDesc[i][0]]= ("number", attValue)
    colOrder.append(curDesc[i][0])
data=[]
values = {}
for i in range(0,end1):
    for j in range(2, end2):
        if j == 2:
            values[curDesc[j][0]] = viewData[i][j].encode("utf-8")  
        else:
            values[curDesc[j][0]] = viewData[i][j]
    data.append(values)

dataTable = gviz_api.DataTable(tableDescription)
dataTable.LoadData(data)

return dataTable.ToJSon(columns_order=colOrder)
var dt = new google.visualization.DataTable({cols:[{id:'activity',label:'Activity',type:'string'},{id:'size',label:'size',type:'number'},{id:'compositeutility',label:'compositeutility',type:'number'}],rows:[{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]},{c:[{v:'AA26FedGovAccounts'},{v:49118957568.0},{v:1.94956132673}]}]}, 0.6);

看起来您正在向数据添加值,但每次迭代后都不会重置值

我想这不是故意的,对吗?如果是这样,只需在行设置代码的第一个for循环中移动值即可