【问题标题】:Encoding error in Python API responsePython API 响应中的编码错误
【发布时间】:2017-07-14 20:20:59
【问题描述】:

我正在尝试(第一次)将 API 与 Python 请求模块一起使用。

我需要从 API 获取一些数据并将其解析为 JSON。在测试查询时,我能够使用 Postman for chrome 成功获得预期的响应。

但是,当我尝试使用 Python 执行相同的代码时,数据编码不正确。我在我的数据上尝试了 .encode('utf-8) .encode('utf-8) ,但没有成功。我已经阅读了有关在 python howto (https://docs.python.org/2/howto/unicode.html) 中编码的文章,但没有运气。

我的代码:

导入请求 r=requests.get("http://company.vtexcommercestable.com.br/api/oms/pvt/orders?per_page=100", headers={"Accept":"application/json","Content-Type":"application/json","X-VTEX-API-AppToken":"password" ,"X-VTEX-API-AppKey":"testemail@gmail.com"});

数据 = r.json()

打印 r

结果:

{u'stats': {u'stats': {u'totalItems': {u'Count': 113, u'Min': 0.0, u'Max': 0.0, u'Sum': 0.0, u'Missing': 0, u'SumOfSquares': 0.0, u'StdDev': 0.0, u'Facets': {}, u'Mean': 0.0}, u'totalValue':

我需要删除“u' ..”并添加保留拉丁字符(重音和“ñ”)

非常感谢您的帮助!

【问题讨论】:

    标签: python-2.7 encoding python-requests


    【解决方案1】:

    我在安装 unicodecsv 包并将原来的 csv 替换为

    后能够解决问题
    import unicodecsv as csv
    

    然后,我可以毫无问题地 csv.writerow Unicode 字符。

    【讨论】:

      【解决方案2】:

      这些是 unicode 字符 - see this answer for a great explanation

      在逻辑中将它们评估为常规字符应该没有任何问题,因此无需担心“删除它们”。

      【讨论】:

      • 嗨大卫,谢谢你的时间,问题是当我尝试使用带有 writerow 函数的 csv 模块时,我收到以下错误“UnicodeEncodeError: 'ascii' codec can't encode character u '\xed' 在第 84 位:序数不在范围内(128)”。我相信有一些我不明白的基本编码原理:(
      猜你喜欢
      • 1970-01-01
      • 2015-09-14
      • 2020-11-27
      • 2018-07-25
      • 2020-04-20
      • 2010-11-16
      • 2023-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多