0

API呼び出しから返されるJSONデータには文字が含まれています\x96

API呼び出しを行うと、次のエラーが発生します。

'ascii' codec can't encode character u'\x96' in position 56: ordinal not in range(128)

これは、API呼び出しで時折発生します。おそらく、このユニコードデータがデコードできない場合の5%の確率です。これらの文字をデコードする方法はありますか?

これが私のコードです:

    start = str(start)
    limit = str(limit) 
    if sort_by:
        url = self.base_url + specific_url + "?q=" + str(query) + "&filters=[[%22category_id%22,[" + category_id + "]]]" + "&start=" + start  + "&limit=" + limit + "&sortby=" + sort_by + "&apikey=" + self.api_key 
    else:
        url = self.base_url + specific_url + "?q=" + str(query) + "&filters=[[%22category_id%22,[" + category_id + "]]]" + "&start=" + start  + "&limit=" + limit + "&apikey=" + self.api_key

    response_json = self.web_fetch(url)
    return simplejson.loads(response_json)
4

1 に答える 1

1

simplejson.loadsunicodeこれが機能するには、オブジェクトを取得する必要があります。

web_fetch()これは、Unicode オブジェクトを返すように関数を修正する必要があることを意味します。または、response_jsonそれがエンコーディングであることがわかっている場合は、UTF8 としてデコードすることができます。

response_json = response_json.decode('utf-8')
于 2013-01-06T13:17:51.273 に答える