Python 未捕获错误:行0的行类型无效

Python 未捕获错误:行0的行类型无效,python,json,google-visualization,Python,Json,Google Visualization,我正在尝试使用谷歌api创建我们的强度图。我用python从一个公开可用的数据集获取数据,然后将其传递到UI端。这是它的代码 query_string = 'SELECT state, count(*) FROM [{0}] GROUP by state;'.format(_DATABASE_NAME) births = self.run_query(query_string, filename='data/states.json') rows = births[u'rows'] states

我正在尝试使用谷歌api创建我们的强度图。我用python从一个公开可用的数据集获取数据,然后将其传递到UI端。这是它的代码

query_string = 'SELECT state, count(*) FROM [{0}] GROUP by state;'.format(_DATABASE_NAME)
births = self.run_query(query_string, filename='data/states.json')
rows = births[u'rows']
states = []
for row in rows:
   name = row[u'f'][0][u'v']
   num = row[u'f'][1][u'v']
   if name == None: name = u'None'
       state = {'state':unicode.encode(name), 'total':int(num)}
       states = states + [state]
states.insert(0, ('State','No of users'))
logging.info(json.encode(states))
context = {"states": json.encode(states)}
self.render_response('index.html', context)
这就是json.encode(states)的样子-

[["State","No of users"],{"state":"AL","total":1957392},{"state":"AK","total":324183},{"state":"AZ","total":1837630},{"state":"AR","total":1062588},{"state":"CA","total":13794114},...........
这是index.html文件-

<html>
<head>
  <script type='text/javascript' src='https://www.google.com/jsapi'></script>
  <script type='text/javascript'>
   google.load('visualization', '1', {'packages': ['geomap']});
   google.setOnLoadCallback(drawMap);

    function drawMap() {
        console.log("In draw map function");
      var test = {{states|safe}};
      console.log(test);  console.log(test);
      var data = google.visualization.arrayToDataTable({{states|safe}});

      var options = {};
      options['region'] = 'US'
      options['dataMode'] = 'regions';

      var container = document.getElementById('map_canvas');
      var geomap = new google.visualization.GeoMap(container);
      geomap.draw(data, options);
  };
  </script>
</head>

<body>
  <div id='map_canvas'></div>

</body>

</html>

load('visualization','1',{'packages':['geomap']});
setOnLoadCallback(drawMap);
函数drawMap(){
console.log(“在绘制地图功能中”);
var测试={states | safe}};
console.log(测试);console.log(测试);
var data=google.visualization.arrayToDataTable({{states | safe}});
var选项={};
选项['region']='US'
选项['dataMode']='regions';
var container=document.getElementById('map_canvas');
var geomap=newgoogle.visualization.geomap(容器);
绘制地理地图(数据、选项);
};
为什么我会犯这样的错误?我在浏览器控制台中看到以下内容- 未捕获错误:行0的行类型无效 lda 总磷
drawMap(索引:12)

一般来说,
google.visualization.arrayToDataTable
需要一个数组数组(python中的列表)。你的列表中有一堆我认为不应该存在的
dict

您可能应该:

state = [unicode.encode(name), int(num)]
states.append(state)  # this is better than states = states + [state]

出于好奇,什么是
json.encode
?通常,人们会使用
json.dumps
或类似的东西。。。