2015-07-01 3 views
-1

Я хотел бы спросить, если кто-то может помочь мне с вопросом я был ниже:JSON формы апи разобрать

Я попытался разобрать объект JSON из внешнего API для MySQL, и я не в состоянии к успеху.

объект JSON выглядит, как показано ниже:

[ 
    { 
     "id":1234, 
     "programId":1234, 
     "programName":"hhhh", 
     "code":"hhhh", 
     "updateDate":"1435722826346", 
     "publishStartDate":"1435701600000", 
     "publishEndDate":"1439675999999", 
     "startDate":"1435701600000", 
     "endDate":"1439675999999", 
     "title":"SEK 47.00 off SEK 430.00 \t", 
     "shortDescription":"SEK 47.00 off SEK 430.00 \t", 
     "description":"SEK 47.00 off SEK 430.00 \t", 
     "voucherTypeId":1, 
     "defaultTrackUri":"http://hhhhh.hhhhh.com/hhhh?a(hhh)p(hhh)ttid(hhhh)url(http://www.hhhhh.com/sv)", 
     "siteSpecific":false, 
     "landingUrl":"http://www.hhhh.com/sv", 
     "discountAmount":47.0, 
     "isPercentage":false, 
     "publisherInformation":"", 
     "languageId":"sv", 
     "exclusive":false, 
     "currencyId":"SEK", 
     "logoPath":"http://hst.hhhhh.com/file/hhhhh/100x35.jpg" 
    } 
] 

Код я использовал для доступа к информации является:

url = url[2] 
    try: 
     json_obj = urllib2.urlopen(url).read 
    except requests.ConnectionError: 
     return "Connection Error" 
    voucher_json_list = json.loads(json_obj) 
    return json.dumps({'message':''+voucher_json_list['code']+''}) 

Однако я не в состоянии получить информацию, чтобы принести его в БД ,

Может ли кто-нибудь дать мне некоторые огни на этом?

заранее спасибо

ответ

0

Я полагаю, вы имели в виду:

try: 
    json_obj = urllib2.urlopen(url).read() 
except: ... 

Кроме того, не данные действительно содержат "id":hhhh,? потому что hhhh недействителен и вызовет ошибку синтаксического анализа.

Я думаю, что было бы чище сделать:

try: 
    json_obj = json.load(
     urllib2.urlopen(url) 
    ) 
except urllib2.URLError: 
    ... 
except ValueError: 
    # invalid JSON 
+0

спасибо за ответ, на самом деле поле идентификатор будет иметь некоторое значение Int и это не сработало дает мне Invalid ** объект JSON ** – jValls