【问题标题】:Unable to read non-ASCII content无法读取非 ASCII 内容
【发布时间】:2016-03-19 04:04:22
【问题描述】:

我想从网页读取非 ASCII JSON 数据,在我的例子中是 Perrsian。这是我在 python-2.7 中的代码:

jsonObject = json.loads(urllib2.urlopen("https://api.instagram.com/v1/users/"+userId+"/?access_token="+accessToken).read().decode('utf-8').encode('utf-8'));
print jsonObject;

不幸的是,即使在decodingencoding 之后,我也得到了这样的结果:

{u'meta': {u'code': 200}, u'data': {u'username': u'*******', u'bio': u'\u0639\u06a9\u0633 \u062f\u0648 \u0646\u0641\u0631\u062a\u0648\u0646 \u0631\u0648 \u0627\u0631\u0633\u0627\u0644 \u06a9\u0646\u06cc\u062f\U0001f48f\U0001f491', u'website': u'', u'profile_picture': u'*****', u'full_name': u'\U0001f451\u0639\u0634\u0642 \u0647\u0627\u06cc \u0627\u06cc\u0631\u0627\u0646\u06cc\U0001f451', u'counts': {u'media': 31, u'followed_by': 12449, u'follows': 0}, u'id': u'*******'}}

我需要做什么才能正确获取字符?

【问题讨论】:

    标签: python json python-2.7 non-ascii-characters


    【解决方案1】:

    这很正常。容器内容使用 ASCII 友好的 Python 语法表示

    打印单个字符串值,你会看到实际值仍然存在:

    >>> print jsonObject['data']['bio']
    عکس دو نفرتون رو ارسال کنید??
    

    【讨论】:

    • 谢谢!!!!但是当我想用csv写它时,为什么要再次编码呢?writer = csv.writer(open("hi.csv", 'w')); writer.writerow([jsonObject[u'data'][u'bio'].encode('utf-8')]);!我编码过一次!!!!
    • @anahita:众所周知,csv 模块的 Python 2 版本不能很好地处理 Unicode。该模块的文档页面为此提供了一些解决方法。另见Read and Write CSV files including unicode with Python 2.7
    猜你喜欢
    • 2021-12-26
    • 2015-12-08
    • 1970-01-01
    • 2022-06-11
    • 2012-08-06
    • 1970-01-01
    • 2014-10-05
    • 2021-01-14
    相关资源
    最近更新 更多