如何使用 unicode 从 python 服务解析 JSON? SyntaxError: Unexpected token u

Posted

技术标签:

【中文标题】如何使用 unicode 从 python 服务解析 JSON? SyntaxError: Unexpected token u【英文标题】:How to parse JSON from python service with unicode? SyntaxError: Unexpected token u 【发布时间】:2015-03-19 17:34:09 【问题描述】:

我正在使用 Angular js 从 http://pythond3jsmashup.appspot.com/chart 加载 json

$http.get('http://pythond3jsmashup.appspot.com/chart');

我从一个如何使用 python (http://code.tutsplus.com/tutorials/data-visualization-app-using-gae-python-d3js-and-google-bigquery--cms-22175) 将 Google BigQuery 数据作为服务获取的示例中获得了这项服务。

Angular 使用 unicode 解析 json 有问题。 Angular有什么办法解决这个问题,还是你必须修改你的python来省略unicode字符?

我正在使用角度 1.3

angular.js:11607 SyntaxError: Unexpected token u 我可以看到它在 JSON.parse 中失败了

从 python 服务返回的数据看起来像这样:

u'kind': u'bigquery#queryResponse', u'rows': [u'f': [u'v': u'brave'], u'f': [u'v': u'forfeits'], u'f': [u'v': u'holding'], u'f': [u'v': u'profession'], u'f': [u'v': u'Condemn'], u'f': [u'v': u"fear'st"], u'f': [u'v': u'answered'], u'f': [u'v': u'religion'], u'f': [u'v': u"你是"], u'f': [u'v': u'deputy'], u'f': [u'v': u'heed'] , u'f': [u'v': u'generation'], u'f': [u'v': u'Boldly'], u'f': [u'v': u"'"], u'f': [u'v': u'told'], u'f': [u'v': u'answer'], u'f': [u'v': u'regard'], u'f': [u'v': u'Touching'], u'f': [u'v': u'meet'], u'f': [u'v': u"o'er"] , u'f': [u'v': u'dawn'], u'f': [u'v': u'authorities'], u'f': [u'v': u'Mended'], u'f': [u'v': u'quality'], u'f': [u'v': u'lusty'], u'f': [u'v': u'forbid'], u'f': [u'v': u'instruments'], u'f': [u'v': u'A'], u'f': [u'v': u'dreadfully'], u'f': [u'v': u'accordingly'], u'f': [u'v':

【问题讨论】:

【参考方案1】:

Angular 使用 unicode 解析 json 有问题。

不,问题是服务确实返回了

u'kind': u'bigquery#queryResponse', ...`. 

这不是 JSON。在 之后的 u 是无效的(这是错误告诉你的)。简单证明:

> JSON.parse("u'foo': 'bar'");
Uncaught SyntaxError: Unexpected token u

无论你做什么,你都没有正确地创建响应。使用json.dumps


鉴于链接教程声称响应是 JSON 的事实表明它可能不是一个好的教程。

但是,如果您继续按照教程进行操作,您将看到在 third part 中返回正确的 JSON。

【讨论】:

我尝试使用正在阅读的教程中的数据。应该提前看到他们将输出修改为 JSON。想知道 Angular js 中是否有一些“魔法”解析器,但感谢您声明没有。

以上是关于如何使用 unicode 从 python 服务解析 JSON? SyntaxError: Unexpected token u的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SQLAPI++ 从 SQL 服务器读取 unicode 字符?

如何从python中的unicode字符串中删除除数字和“,”之外的所有字符?

通过ajax从python返回unicode字符串

我如何以python不将数据解释为unicode的方式编写它?

Python:从脚本中打开一个名为 xls 的 unicode 文件

如何在mac上正确压缩文件以通过python从s3解压缩?