python - python字符串的Golang JSON解码

标签 python unicode go boto

我正在使用 AWS SQS 队列,其中 python 使用 boto 将字符串放入队列中。大多数字符串都是unicode,但也有一些是python的基本字符串类型。

我尝试使用 GO 读取这些消息并遇到 JSON 解码错误:

JSON Decode Error: 2 invalid character 'e' looking for beginning of value

当 GO 遇到不是 unicode 字符串而是 Python 基本字符串格式的消息时,就会发生所有这些解码错误。

有没有办法将 GO 中的 python 字符串转换为 unicode 字符串? ascii -> unicode?

编辑:

这是一个工作和非工作 json 字符串的示例。我能够得到不起作用的唯一方法是通过 python,GO 给出了上面的解码错误

Working:
 u'{"queue_time": "1374523279747", "object_id": "5efc90c0912fef247f028f1758082a299c018e8a2c6499289f3426217b14f0ae", "source_bucket": "ap1-cache"}',

Doesn't work:
 '{"queue_time": "1374523279.75026", "source_bucket": "eu1-cache", "object_id": "42e8b7b01ed5919a23d6d91fdc0b540944a5f45e4c387fa1c2bc20e1bf81bdeb"}',

最佳答案

要从 Python 生成正确的 JSON,您可以使用 json 库:

>>> d = {"queue_time": "1374523279747", "object_id": "...", "source_bucket": "ap1-cache"}
>>> d
{'queue_time': '1374523279747', 'source_bucket': 'ap1-cache', 'object_id': '...'}

>>> import json
>>> print json.dumps(d)
{"queue_time": "1374523279747", "source_bucket": "ap1-cache", "object_id": "..."}

请注意,对于这个简单的示例,JSON 输出看起来几乎完全相似,但对于更复杂的事情则不一定如此。例如。元组和 unicode 字符串有不同的表示形式:

>>> t = [u"Hello", ("World", "!"), u"\xa0"]
>>> t
[u'Hello', ('World', '!'), u'\xa0']
>>> print json.dumps(t)
["Hello", ["World", "!"], "\u00a0"]

关于python - python字符串的Golang JSON解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17795799/

相关文章:

javascript - 如何让nodejs与golang对话

python - 如何从轮廓矢量转换为MAT?

java - 通过算法将 String 中的数字更改为下标

go - 当文件位于文件夹中时无法添加新的 cobra CLI 命令

Python 3 smtplib 发送带有 unicode 字符

unicode - 在 Go 中读取带有 BOM 的文件

mysql - 测试驱动开发检查数据库查询所涉及的方法

Python Pandas : rolling_kurt vs. scipy.stats.kurtosis

Python:整数到 Base 32 十六进制(又名。Triacontakaidecimal)

python - 获取颜色条刻度标签