Python-如何删除 json 字符串中最后的逗号(,)

2024-05-31

嗨,我刚刚开始尝试 python、tornado 和 mongodb(我是新手)。我编写了一个简单的 get 函数来从 mongodb 获取所有值并以 JSON 格式返回。问题是,当我尝试将输出写入 JSON 字符串时,我在集合中的最后一条记录后面得到一个尾随逗号 (,)。

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)

我的输出就像

{"success": 1, "data":[{"_id": "55a5e988545779f35d3ecdf4", "name": "fgkd", "city": "fghj"},{"_id": 12345.0, "name": "adfs", "city": "asd"},]}

谁能告诉我如何去掉最后一条记录后的尾随逗号(,),因为该逗号我收到错误格式错误的 JSON 字符串

我尝试过使用 json 转储

@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))

得到输出为

{"Reg": "11ts", "_id": {"$oid": "55a5e988545779f35d3ecdf4"}, "Name": "Alex"}{"Reg": "12ts", "_id": {"$oid": "55a5eac6545779f35d3ecdf5"}, "Name": "asdf"}

使用时dumps[{ "data": document }]

我得到的输出为

[{"data": {"Name": "asdf", "Reg": "asdfs", "_id": {"$oid": "55a5e988545779f35d3ecdf4"}}}]

[{"data": {"Name": "qwer", "Reg": "asdff", "_id": {"$oid": "55a5eac6545779f35d3ecdf5"}}}]

但我想要这样的输出

{"data": [{"Name": "asdf", "Reg": "asdfs", "_id": {"$oid": "55a5e988545779f35d3ecdf4"}},{"Name": "qwer", "Reg": "asdff", "_id": {"$oid": "55a5eac6545779f35d3ecdf5"}}]}

如果我做错了什么,请告诉我,我不知道该怎么做。


您没有理由通过文本连接来构建 JSON 文档。

Python 有一个非常好的json您应该使用的标准库中的模块。将您的文档构建为 Python 字典列表,然后使用json.dumps()将整个内容转换为有效的 JSON。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python-如何删除 json 字符串中最后的逗号(,) 的相关文章

  • 使用seaborn,我如何在散点图上画一条我选择的线?

    我希望能够在seaborn 生成的图中画出一条符合我规范的线 我选择的图是 JointGrid 但任何散点图都可以 我怀疑seaborn可能不容易做到这一点 以下是绘制数据的代码 来自 Iris 数据集的花瓣长度和花瓣宽度的数据帧 impo
  • 使用 JSON 将数据从 Python 导出到 Tableau?

    如何以表格形式从 Python 获取 400 万行和 28 列 我假设 基于搜索 我应该使用 JSON 格式 这种格式可以处理大量数据并且足够快 我制作了 12 行数据的子集并尝试使其正常工作 好消息是 它正在发挥作用 坏消息 不是我想要的
  • Python Turtle 中的 onkeypress() 和 Listen() 问题

    我的一个功能有问题 我使用 Python 3 7 当我尝试使用onkeypress 函数 什么也没有发生 我尝试检查它 但是当我按键时乌龟模块没有反应 我尝试使用 w 键向上移动桨 但这不起作用 以下是我的 py 文件 main py im
  • 来自 yahoo 的 python lxml etree 小程序信息

    雅虎财经更新了他们的网站 我有一个 lxml etree 脚本 用于提取分析师建议 然而现在 分析师的建议已经存在 但只是以图表的形式出现 你可以看到一个例子这一页 https finance yahoo com quote CSX ana
  • AMLS 实验运行停留在“正在运行”状态

    我运行了 Azure 机器学习服务实验 并使用 Jupyter Notebook 记录了神经网络损失 日志记录工作正常 神经网络训练也按预期完成 但实验一直停留在运行状态 关闭计算资源不会关闭实验运行 我无法从实验面板取消它 此外 运行没有
  • Node.js -Firebase 服务帐户私钥无法解析

    I use env我的 app js 文件中的变量用于访问密钥 一切都工作正常 直到我下载了一个新的Firebase Service Account Private Key 当我用新值替换旧值时 我无法再访问该密钥 因为terminal当我
  • 如何使用 BeautifulSoup 排除表中的某些行?

    我已经从表格中获得了所需的数据 但不想要各个玩家统计数据之间的缩写 Rk Pos Name 等 如何在保留所需数据的同时排除这些数据 包含缩写的行被归类为 thead 但我不知道如何使用该信息来跳过它 我知道玩家的数据都被压缩在一起 但现在
  • 从 paramiko 获取 PID

    我找不到一个简单的答案 我正在使用 paramiko 远程登录并执行多个进程 我需要每个进程的 PID 以便稍后检查它们 paramiko 中似乎没有函数来获取执行命令的 PID 所以我尝试使用以下命令 stdin stdout stder
  • 在 SQLAlchemy 中删除父级后删除子级

    我的问题如下 我有两个型号Entry and Tag通过 SQLAlchemy 中的多对多关系链接 现在我想删除所有Tag没有任何对应的Entry后Entry被删除 示例来说明我想要的内容 Entry 1带标签python java Ent
  • python中matlab find函数的替换

    我正在尝试寻找合适的python函数来替代matlabfind在我的脚本和一些谷歌搜索中我看到np where 大多数时候都能解决目的 但在双重条件的情况下 我有不同的输出 有人可以告诉我这种方法有什么问题以及如何继续吗 示例代码和差异如下
  • 当使用 cx_Freeze 和 tkinter 时,我得到:“DLL 加载失败:找不到指定的模块。” (Python 3.5.3)

    当使用 cx Freeze 和 Tkinter 时 我收到以下消息 File C Users VergilTheHuragok AppData Local Programs Python Python35 32 lib tkinter in
  • 使用 Cython 扩展模块分发共享库和一些 C 代码

    我正在尝试从大型 C 共享库 libbig so 中获取一些函数 并通过 Cython 将它们公开给 Python 为此 我有一个小 C 文件 small cpp 它为我需要的共享库的功能提供了一个薄包装器 从而可以轻松地通过 Cython
  • Python 中 Javascript 的 reduce()、map() 和 filter() 的等价物是什么?

    Python 的等价物是什么 Javascript function wordParts currentPart lastPart return currentPart lastPart word Che mis try console l
  • Numpy 相当于 if/else 不带循环

    有没有任何Pythonic方法可以删除下面代码中的for循环和if else 此代码迭代 NumPy 数组并检查条件并根据条件更改值 gt gt gt import numpy as np gt gt gt x np random rand
  • 从线程队列中获取所有项目

    我有一个线程将结果写入队列 在另一个线程 GUI 中 我定期 在 IDLE 事件中 检查队列中是否有结果 如下所示 def queue get all q items while 1 try items append q get nowai
  • 从 NumPy、matplotlib 包导入 python 子模块有什么区别[重复]

    这个问题在这里已经有答案了 当我尝试使用时pyplot from matplotlib import matplotlib print matplotlib pyplot just checking 它给了我AttributeError m
  • pandas 数据帧和聚合中的行明智排序

    我在 pandas dataframe df 中有一个表 col1 col2 count 12 15 3 13 17 5 1 36 4 15 12 7 36 1 4 等等 我想要的是将 12 和 15 和 15 和 12 等计算值视为相同
  • 如何在 python setup.py 中 chmod 文件?

    我使用 setup py 创建了一个 python 包安装 我希望它复制文件夹 为临时创建的 did 中的数据文件 问题是我必须使用 sudo 权限调用 setup py 因为它写入 usr local 因此 当我的数据文件复制到 did
  • 在 AWS ec2 实例上使用“sudo pip”时出现错误

    我正在尝试在 aws ec2 实例上运行一个小型 python 代码 需要 pytz 和其他一些包 当我尝试安装 pytz 时 出现一些错误 ec2 user ip 172 31 28 178 pip install pytz Collec
  • 检查Python multiprocessing.Connection 的实例吗?

    Connection对象是在打开时创建的multiprocessing Pipe 然而 尚不清楚如何检查一个对象是否是一个实例Connection 在Python3 3 4 3 3 3 2 中 检测Connection我可以 from mu

随机推荐

  • 通过 Python 的 elementtree 替换作为数字字符引用一部分的 & 符号

    我正在使用 Python 的 elementtree 模块来编写一些 XML 我正在使用 Python 2 7 和 3 2 我的一些元素的文本字段包含数字字符引用 然而 一旦我使用 elementtree 的tostring字符引用中的所有
  • 禁用 Bootstrap 中的链接

    第一个例子没有成功 我需要始终有一个列表来禁用链接 或者我的第一个演示有什么问题 a class disabled href Disabled link a ul class nav nav pills li class disabled
  • 打瞌睡模式和前台服务

    检查我的应用程序在 M Preview 设备上的行为 似乎其前台 带有活动通知 服务正在播放音乐is not受 Doze 模式影响 但阅读文档似乎前台服务仅不受 AppStandby 的约束 真正的规则是什么 In 这个帖子 https p
  • r:按多列分组并计数

    我有以下数据框 df LeftOrRight SpeedCategory NumThruLanes R 25to45 3 L 45to62 2 R Gt62 1 我想按速度类别对其进行分组 并循环遍历其他列以获取每个速度类别中每个唯一代码的
  • 如何美化PhpStorm和其他Intellij编辑器中的代码?

    有什么方法可以美化 PhpStorm 中的 php 代码吗 最好有键盘快捷键 Choose Code Reformat Code or press Ctrl Alt L EDIT The keyboard shortcode has cha
  • git commit -m 与 git commit -am

    看起来很容易 但我就是不明白 我在我的应用程序的根目录中 这是我的工作流程 git add git commit m added a new feature some files changed git push heroku master
  • JQGrid自定义排序

    我有一个 JQGrid 其中填充了正常工作的数据 默认排序功能按预期工作 但是 我想按单击的列和按名称列排序 每次 我觉得onSortCol是我应该开始的地方 但是文档中没有太多关于如何对表的内容进行排序的内容 理想情况下 我希望不必编写自
  • 如何在C#中剪切、编辑和合并OGG文件?

    我有一个 ogg vorbis 文件 我必须用它执行两个操作 将文件的一部分从一个位置剪切到另一个位置 将另一个文件与现有文件合并 如何在 C 中执行这两个操作 你可以使用 libzplay 来做到这一点http libzplay sour
  • Flutter android 风味生成 apk

    我正在尝试使用 flutter 设置 Android 风格 我有两个入口点 lib main prod dart lib main dev dart 我还在我的 gradle 文件中添加了以下内容 flavorDimensions vers
  • 获取过时的 Composer 软件包列表

    我想获取过时的软件包列表 这些软件包将在我发布时更新composer update 作曲家有这样的功能吗 如果没有 有没有办法做到这一点 有或没有作曲家 Update Since Composer v1 1 2016 年 5 月 https
  • 多个应用程序中的 Angular 共享资产

    我正在开发多个小型应用程序 这些应用程序将共享公共和共享模块以及资产 关于如何创建项目结构的部分已在这里回答 https stackoverflow com a 61254557 1351452 https stackoverflow co
  • JBehave 和 Maven - 如何跳过场景测试

    我正在使用 jbehave 和 jbehave maven 插件来运行一组场景测试 让我的测试类扩展 JUnitStories 一切都运行良好 唯一的问题是 我无法停止运行测试 每次我运行 Maven 安装目标时 它都会运行测试 我尝试在下
  • 向 Shopify Liquid 链接添加类?

    我正在尝试为我的客户生成注销链接 但想对该链接应用一个类 layout customer log out t customer logout link 上述液态代码生成 a href account logout Log out a 我想添
  • PyQt:使用 alpha 通道创建 QPixmap,而不是预乘颜色通道

    我想创建一个 QPixmap 来使用 QPainter 进行绘制 QPixmap 应支持透明度 而不使用预乘颜色通道 目前 我通过创建具有所需尺寸的 QPixmap 并用每个通道 包括 alpha 设置为零的 QColor 填充它来实现此目
  • 如何像facebook和twitter一样显示帖子更新时间?

    我正在制作一个通知平台 而不是显示通知到来的时间 我想显示自通知到达以来经过的时间 就像在 Twitter 和 Facebook 上发生的那样 他们显示 32m 1 小时前等 我想用JavaScript Java来实现这段代码 任何帮助将非
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • 如何列出喜欢某个页面或感兴趣的 Facebook 用户 [重复]

    这个问题在这里已经有答案了 可能的重复 检索 Facebook 粉丝姓名 https stackoverflow com questions 2001281 retrieve facebook fan names 我想要获取喜欢某个页面或感
  • 是否可以在通过表单上传本地图像之前预览它们?

    更具体地说 我想使用一种带有一个或多个用于图像的文件输入字段的表单 当这些字段发生更改时 我想在将数据发送到服务器之前显示关联图像的预览 我尝试过多种 JavaScript 方法 但总是遇到安全错误 我不介意使用 java 或 flash
  • 嵌套名称说明符中的类型不完整

    我尝试在嵌套名称说明符中使用不完整类型 如下所示 class A int b A c error incomplete type A used in nested name specifier class A static const in
  • Python-如何删除 json 字符串中最后的逗号(,)

    嗨 我刚刚开始尝试 python tornado 和 mongodb 我是新手 我编写了一个简单的 get 函数来从 mongodb 获取所有值并以 JSON 格式返回 问题是 当我尝试将输出写入 JSON 字符串时 我在集合中的最后一条记