Python中文
首页
教程
问答
标签
搜索
登录
注册
Python如何删除json字符串中的最后一个逗号(,)
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>嗨,我刚开始用python和tornado以及mongodb进行实验(我是个新手)。我编写了一个简单的get函数,从mongodb获取所有值,并以JSON格式返回。问题是,当我试图将输出写为JSON字符串时,在集合的最后一条记录后面会有一个逗号(,)。在</p> <pre><code>class TypeList(APIHandler): @gen.coroutine def get(self): cursor = db.vtype.find() self.write("{"'"success"'": 1, "'"data"'":[") while (yield cursor.fetch_next): document = cursor.next_object() self.write(format(JSONEncoder().encode(document))) self.write(",") self.write("]}") class JSONEncoder(json.JSONEncoder): def default(self, o): if isinstance(o,ObjectId): return str(o) return json.JSONEncoder.default(self, o) </code></pre> <p>我的输出是</p> ^{pr2}$ <p>有谁能告诉我怎样才能去掉最后一条记录后面的逗号(,),因为这个逗号,我得到了一个格式错误的JSON字符串</p> <p>我尝试过使用json转储</p> <pre><code>@gen.coroutine def get(self): cursor = db.vtype.find({"brand": "Tata"}) while (yield cursor.fetch_next): document = cursor.next_object() self.write(json.dumps(document,default=json_util.default)) </code></pre> <p>输出为</p> <p><code>{"Reg": "11ts", "_id": {"$oid": "55a5e988545779f35d3ecdf4"}, "Name": "Alex"}{"Reg": "12ts", "_id": {"$oid": "55a5eac6545779f35d3ecdf5"}, "Name": "asdf"}</code></p> <p>使用<code>dumps[{ "data": document }]</code>时</p> <p>我得到的输出是</p> <pre><code>[{"data": {"Name": "asdf", "Reg": "asdfs", "_id": {"$oid": "55a5e988545779f35d3ecdf4"}}}] [{"data": {"Name": "qwer", "Reg": "asdff", "_id": {"$oid": "55a5eac6545779f35d3ecdf5"}}}] </code></pre> <p>但我想要这样的输出</p> <pre><code>{"data": [{"Name": "asdf", "Reg": "asdfs", "_id": {"$oid": "55a5e988545779f35d3ecdf4"}},{"Name": "qwer", "Reg": "asdff", "_id": {"$oid": "55a5eac6545779f35d3ecdf5"}}]} </code></pre> <p>如果我做错了什么,请告诉我我不知道该怎么做。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您没有理由通过文本连接来构建JSON文档。在</p> <p>Python在您应该使用的标准库中有一个非常好的<code>json</code>模块。将文档构建为一个由dict组成的Python列表,然后使用<code>json.dumps()</code>将整个文档转换为有效的JSON。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
plt.savefig不会覆盖现有文件
6 回答
plt.savefig不保存图像
6 回答
plt.savefig在jupyter笔记本中不起作用
5 回答
plt.savefig在从另一个fi调用时停止工作
5 回答
plt.savefig在调用plt.show之前保存空数字
1 回答
plt.save不创建png文件
5 回答
plt.scatter overlay分类数据帧列
2 回答
Plt.Scatter:如何添加title、xlabel和ylab
5 回答
plt.scatter()绘图与Matplotlib中的plt.plot()绘图类似
9 回答
plt.scatter错误'NoneType'对象在成功运行后没有属性'sqrt'
3 回答
plt.set_title()中的标题字符串有误
2 回答
plt.show()
6 回答
plt.show()不在Jupyter笔记本上渲染任何内容
5 回答
plt.show()不打印plt.plot only plt.scatter
2 回答
plt.show()不显示三维散射图像
7 回答
plt.show()不显示任何内容
5 回答
plt.show()不显示数据,而是保留它供下一个图表使用(spyder)
4 回答
plt.show()使终端挂起
8 回答
plt.show()无法使用此代码
1 回答
plt.show()没有打开新的图形风
10 回答