1

我正在使用 python 并使用Twitter api接收有关用户的数据。我得到的是一个 json 编码的属性字典。例如

{

"id": 123456789,

"name": "ととり~む",

"screen_name": "somescreenname",

"description": "こんにちは♪ キャラ的にはこなたですが好きな子はつかさな私です。 ゲーム・漫画・アニメならなんでも好きです。 気が合う方はよろしくお願いします。 ",

}

注意:这不是我收到的确切字典,而是针对问题进行的总结。

我的一些用户有另一种语言的数据,假设是Japanese。我想保存我的用户的“名称”。当我使用:

data["name"].encode('utf8')

我仍然最终失去了一些像这样的角色 ̄チᄄ ̄チᄄ ̄ツハ￯ᄑ゙ ̄ツタ。我不想丢失任何数据,我可以在这里应用的最佳机制是什么?

4

1 回答 1

3

我想你会发现你实际上并没有丢失任何数据。你应该能够做到:

data['name'].encode('utf8').decode('utf8') 

并取回原始字符串。您可以将中间bytes对象写入磁盘,稍后再将其读回并对其进行解码以达到相同的效果。

您似乎担心的是打印编码字符串时出现的方块和其他废话 - 这几乎可以肯定是显示问题,而不是数据丢失。可能您的终端正在尝试以不同的编码解释字节,从而导致Mojibake。只要您小心地将编码直接保存在程序中,这不会给您带来问题 - 只需检查您是否可以进行上述往返。

于 2012-06-04T07:44:06.433 回答