मैं किसी वेबसाइट से शीर्षलेख प्राप्त करने का प्रयास कर रहा हूं, इसे फ़ाइल में लिखने के लिए JSON में एन्कोड करें। मैंने सफलता के बिना दो अलग-अलग तरीकों की कोशिश की है। -> json_header = strपायथन के साथ एक शीर्षलेख प्राप्त करें और JSON (अनुरोध - urllib2 - json) में कनवर्ट करें
TypeError: is not JSON serializable
तो मैं एक स्ट्रिंग के लिए वस्तु परिवर्तित करके इस मुद्दे को बायपास करने के लिए प्रयास करें:
urllib2 और इस तरह से json
import urllib2
import json
host = ("https://www.python.org/")
header = urllib2.urlopen(host).info()
json_header = json.dumps(header)
print json_header
साथ सबसे पहले मैं त्रुटि मिलती है (हेडर) इस तरह से मैं json_header कर सकते हैं = json.dumps (हेडर) में लेकिन उत्पादन में यह अजीब है:
अनुरोध"Date: Wed, 02 Jul 2014 13:33:37 GMT\r\nServer: nginx\r\nContent-Type: text/html; charset=utf-8\r\nX-Frame-Options: SAMEORIGIN\r\nContent-Length: 45682\r\nAccept-Ranges: bytes\r\nVia: 1.1 varnish\r\nAge: 1263\r\nX-Served-By: cache-fra1220-FRA\r\nX-Cache: HIT\r\nX-Cache-Hits: 2\r\nVary: Cookie\r\nStrict-Transport-Security: max-age=63072000; includeSubDomains\r\nConnection: close\r\n"
import requests
r = requests.get(“https://www.python.org/”)
rh = r.headers
print rh
{'content-length': '45682', 'via': '1.1 varnish', 'x-cache': 'HIT', 'accept-ranges': 'bytes', 'strict-transport-security': 'max-age=63072000; includeSubDomains', 'vary': 'Cookie', 'server': 'nginx', 'x-served-by': 'cache-fra1226-FRA', 'x-cache-hits': '14', 'date': 'Wed, 02 Jul 2014 13:39:33 GMT', 'x-frame-options': 'SAMEORIGIN', 'content-type': 'text/html; charset=utf-8', 'age': '1619'}
इस तरह के साथ 10
दूसरा उत्पादन की तरह अधिक JSON, लेकिन अभी भी ठीक नहीं ('' के बजाय "के" और = जैसे अन्य सामान और देखो;) है। जाहिर है कि कुछ (या बहुत कुछ) मैं सही तरीके से नहीं कर रहा हूं। मैंने मॉड्यूल के दस्तावेज को पढ़ने की कोशिश की है लेकिन मुझे समझ में नहीं आता कि इस समस्या को कैसे हल किया जाए। आपकी मदद के लिए धन्यवाद।
आपको बहुत धन्यवाद @ स्लेटर टायरनस। आपकी दूसरी विधि यह वही है जो मैं खोज रहा था। जिज्ञासा से सिर्फ एक प्रश्न। अपनी पहली विधि के आउटपुट को पढ़ते हुए मैं देखता हूं कि चाबियाँ और मान '' के अंदर हैं। Json.dumps उस मामले में क्यों करता है? क्या वैध JSON प्रारूप में "" के अंदर मान होना चाहिए? –