2015-05-26 4 views
-2

Как мне преобразовать следующее на странице html в реальный объект json, с которым я могу разобрать?Преобразование html-json в фактический json

<script src=\"http://static.huluim.com/huluguru/i18n/en-us/translations-219ee4e300884b27b7e875b76cdd956b.js\" type=\"text/javascript\"><\/script>\n   <script src=\"http://static.huluim.com/huluguru/application_core-c4b64baae3fbc0e521f2421421b5fbd7.js\" type=\"text/javascript\"><\/script>\n    <script src=\"http://static.huluim.com/huluguru/application_framework-83ca0d7c85063f8e535d65f6fcb7ebfa.js\" type=\"text/javascript\"><\/script>\n   <script type='text/javascript'>\n window.jsLoaded.frameworkloadedCallbacks.push(function(){\n  
window._preloadedFastStartVideo = {\"id\": 786746, \"eid\": \"AXbfrprlxGzisLBNlTdzMw\", 
\"title\": \"10.0 Earthquake\", \"video_type\": \"feature_film\", \"content_id\": \"60551582\"} 

По существу я хотел бы быть в состоянии сделать:

>>> _preloadedFastStartVideo['id'] 
786746 
+1

Это поможет, если вы дали нам контекст, где и как на странице, которую ему дали, удалось избежать. Это внутри тега скрипта? Контекст CDATA? Что-то другое? –

+0

@CharlesDuffy - см. Обновленный вопрос – David542

+0

Литеральные двухсимвольные последовательности '\ n'? Я действительно сомневаюсь в этом. Это то, что вы получаете, набрав 'varname' в приглашении Python? Это отличается от того, что вы получили от 'print varname'; Интерактивно работающий '>>> varname' совпадает с' print repr (varname) ', который сильно отличается от' print str (varname) '; последним является то, как вы получите литеральный контент, подходящий для вставки в вопрос StackOverflow. –

ответ

0

Вы можете использовать json.loads ('ваш JSON здесь')

import json 
json.loads('{\"id\": 786746, \"eid\": \"AXbfrprlxGzisLBNlTdzMw\", \"title\": \"10.0 Earthquake\", \"video_type\": \"feature_film\", \"content_id\": \"60551582\"}') 

возвращение

{u'content_id': u'60551582', u'title': u'10.0 Earthquake', u'id': 786746, u'video_type': u'feature_film', u'eid': u'AXbfrprlxGzisLBNlTdzMw'} 

если вы хотите, чтобы захватить строку, которую нужно из строки вы условии, что вы можете использовать что-то вроде этого:

import re 
instr = re.sub("\n","",string.split("window._preloadedFastStartVideo =")[1]) 

следовать с

d = json.loads(instr) 
Смежные вопросы