मैं JSON को अपनी mysql क्वेरी के आउटपुट आउटपुट करने का प्रयास कर रहा हूं। मैं datetime.datetime क्षेत्र serializing के साथ समस्या है, तो मैं छोटा सा समारोह ने लिखा है कि ऐसा करने के लिए: मुख्य कोड में मैं बस चल रहा हूँजेएसओएन को आउटपुट को सीरियलाइज करना - वैल्यूएरर: परिपत्र संदर्भ
def date_handler(obj):
if hasattr(obj, 'isoformat'):
return obj.isoformat()
else:
return obj
और उसके बाद:
products_json = []
for code in best_matching_codes:
cur = db.cursor()
query = "SELECT * FROM %s WHERE code LIKE '%s'" % (PRODUCTS_TABLE_NAME, product_code)
cur.execute(query)
columns = [desc[0] for desc in cur.description]
rows = cur.fetchall()
for row in rows:
products_json.append(dict((k,v) for k,v in zip(columns,row)))
return json.dumps(products_json, default = date_handler)
हालांकि, बाद से मैंने लिखा date_handler फ़ंक्शन, मुझे "ValueError: परिपत्र संदर्भ पता चला है"
127.0.0.1 - - [10/Jan/2013 00:42:18] "GET /1/product?code=9571%2F702 HTTP/1.1" 500 -
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/flask/app.py", line 1701, in __call__
return self.wsgi_app(environ, start_response)
File "/Library/Python/2.7/site-packages/flask/app.py", line 1689, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/Library/Python/2.7/site-packages/flask/app.py", line 1687, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Python/2.7/site-packages/flask/app.py", line 1360, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Library/Python/2.7/site-packages/flask/app.py", line 1358, in full_dispatch_request
rv = self.dispatch_request()
File "/Library/Python/2.7/site-packages/flask/app.py", line 1344, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/pisarzp/Desktop/SusyChoosy/susyAPI/test1.py", line 69, in product_search
return json.dumps(products_json, default = date_handler)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 238, in dumps
**kw).encode(obj)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 201, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 264, in iterencode
return _iterencode(o, 0)
ValueError: Circular reference detected
मैंने क्या तोड़ दिया? JSON पर आउटपुट को क्रमबद्ध करने का कोई बेहतर तरीका है?
क्या आप product_json के लिए प्रिंट आउटपुट प्राप्त कर सकते हैं? मुझे लगता है कि तारीख के साथ कुंजी के बीच कुछ डुप्लीकेट किया गया है। फिर यह एक ही त्रुटि मिल सकती है। – jinghli