解碼與您已經導入json
模塊的JSON:
result = json.loads(fetched_data.decode('utf8'))
我在這裏硬編碼的編碼; JSON RFC狀態默認爲UTF-8,但您可以看到Content-Type
響應標頭是否有一個charset
參數,該參數可以告訴您實際的編碼。我不想用pycurl
;真的是,真的很麻煩來處理。改爲使用requests
library,它可以爲您處理JSON,開箱即用。它處理的字節流解碼爲Unicode 你:
import requests
result = requests.get('https://api.angel.co/1/jobs').json()
那個特定的URL返回一個JSON 對象,導致Python字典:
{'jobs': [{'angellist_url': 'https://angel.co/jobs?startup_id=267120',
'created_at': '2014-02-06T08:07:35Z',
'equity_cliff': '0.0',
'equity_max': '0.0',
'equity_min': '0.0',
'equity_vest': '0.0',
'id': 22672,
'salary_max': 0,
'salary_min': 0,
'startup': {'angellist_url': 'https://angel.co/nationsroot-1',
'community_profile': False,
'company_url': 'http://nationsroot.com',
'created_at': '2013-09-20T07:55:25Z',
'follower_count': 5,
'hidden': False,
'high_concept': 'Bridge between citizens and politicians',
'id': 267120,
'logo_url': 'https://s3.amazonaws.com/photos.angel.co/startups/i/267120-9513670dbfe74c170201df0e385d1c2c-medium_jpg.jpg?buster=1379663721',
'name': 'NationsRoot',
'product_desc': 'NationsRoot helps you find profiles and report cards of politicians, share your thoughts and rate your political leaders. We believe that citizens are not absolved of their duties once they are done voting. So, We provide a platform where you can rate the quality of government provided services to create real time Report Cards for all politicians.\r\n\r\nOn the other hand, Politicians will have the detail analytics about requirements of citizens in various electoral area which will be helpful during elections and can have latest updates too.',
'quality': 3,
'thumb_url': 'https://s3.amazonaws.com/photos.angel.co/startups/i/267120-9513670dbfe74c170201df0e385d1c2c-thumb_jpg.jpg?buster=1379663721',
'updated_at': '2014-02-06T07:36:36Z'},
'tags': [{'angellist_url': 'https://angel.co/business-development-1',
'display_name': 'Business Development',
'id': 15525,
'name': 'business development',
'tag_type': 'SkillTag'},
{'angellist_url': 'https://angel.co/sales-strategy-and-management',
'display_name': 'Sales Strategy and Management',
'id': 16928,
'name': 'sales strategy and management',
'tag_type': 'SkillTag'},
{'angellist_url': 'https://angel.co/sales-and-marketing-2',
'display_name': 'Sales and Marketing',
'id': 23989,
'name': 'sales and marketing',
'tag_type': 'SkillTag'},
{'angellist_url': 'https://angel.co/australia',
'display_name': 'Australia',
'id': 1618,
'name': 'australia',
'tag_type': 'LocationTag'},
{'angellist_url': 'https://angel.co/sales-2',
'display_name': 'Sales',
'id': 80488,
'name': 'sales',
'tag_type': 'RoleTag'}],
'title': 'Sales Intern',
'updated_at': '2014-02-06T08:07:57Z'},
# many more entries elided
],
'last_page': 184,
'page': 1,
'per_page': 50,
'total': 9195}
你正在尋找那麼列表是result['jobs']
,但您還需要額外的頁面才能獲得所有9195個結果。
爲什麼你使用(繁瑣)'pycurl'庫? Python 3有更好的選擇來下載Web數據。 –