def list(type, extra=""):
if extra != "":
entity = "http://api.crunchbase.com/v/1/" + type + "/" + extra + ".js?api_key=" + key
data = json.load(urllib2.urlopen(entity))
else:
entity = "http://api.crunchbase.com/v/1/" + type + ".js?api_key=" + key
data = json.load(urllib2.urlopen(entity))
return data
関数リストは、具体的には次のように呼び出されます。
x = colink
details = list(co, x)
具体的には、x が「if_this_then_that」で co が「company」の場合
2 行目にクエリを実行すると、この行でコードが壊れます (エンティティ リンクは適切にフォーマットされています)。以下にエラー メッセージを示します。エラーが発生した JSON ファイルの行は次のとおりです。JSON API を介してデータを取得する際の unicode エラーの処理方法がわかりません。これを修正する方法についての提案をいただければ幸いです。
Traceback (most recent call last):
File "crunch_API.py", line 95, in <module>
details = list(co, x)
File "crunch_API.py", line 34, in list
data = json.load(urllib2.urlopen(entity))
File "C:\Python27\lib\json\__init__.py", line 278, in load
**kw)
File "C:\Python27\lib\json\__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 382, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Invalid control character at: line 24 column 89 (char 881)
"overview": "\u003Cp\u003EIFTTT は、1 つの簡単なステートメントで強力な接続を作成できるサービスです。if this then that.\u003C/p\u003E", #### エラーが発生する場所