<p>您可以使用<a href="https://docs.python.org/3/library/json.html#json.dumps" rel="nofollow">^{<cd1>}</a>:</p>
<pre><code>import json
for row in r.db(....).run(conn):
print(json.dumps(row, indent=4))
</code></pre>
<p>尽管这并没有按排序的顺序显示键,但它可能已经足够满足您的需要了。正如@coder指出的那样,<code>json.dumps()</code>可以通过指定<code>sort_keys=True</code>参数对键进行排序。在</p>
^{pr2}$
<p>也可以直接打印对象(尚未测试):</p>
<pre><code>print(json.dumps(r.db(....).run(conn), indent=4, sort_keys=True)
</code></pre>
<p>也可能打印出周围的“list”对象。在</p>
<hr/>
<p>要处理不支持序列化为JSON的对象,可以使用自定义的<a href="https://docs.python.org/3/library/json.html#json.JSONEncoder" rel="nofollow">^{<cd4>}</a>。下面是一个处理<code>datetime.datetime</code>对象的示例:</p>
<pre><code>from datetime import datetime
class DateTimeAwareJSONEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime):
tz = obj.tzname()
return obj.ctime() + (' {}'.format(tz) if tz else '')
return super(DateTimeAwareJSONEncoder, self).default(obj)
for row in r.db(....).run(conn):
print(json.dumps(row, indent=4, sort_keys=True, cls=DateTimeAwareJSONEncoder))
</code></pre>
<p>您可以根据需要使用<a href="https://docs.python.org/3/library/datetime.html#strftime-and-strptime-behavior" rel="nofollow">^{<cd6>}</a>格式化日期时间字符串。在</p>