当前位置: 首页 > 知识库问答 >
问题:

在python中将ndjson转换为json

皇甫波峻
2023-03-14

我需要将ndjson对象转换为python中的json,我看到pypi中有一个库。org,但我不能使用它,它是ndjson 0.3.1

{"license":"mit","count":"1551711"}
{"license":"apache-2.0","count":"455316"}
{"license":"gpl-2.0","count":"376453"}

进入json

[{
    "license": "mit",
    "count": "1551711"
},
{
    "license": "apache-2.0",
    "count": "455316"
},
{
    "license": "gpl-2.0",
    "count": "376453"
}]

有什么帮助吗?谢谢你们

共有1个答案

孟鹏海
2023-03-14

不需要使用第三方库,来自Python的json标准库就足够了:

import json

# the content here could be read from a file instead
ndjson_content = """\
{"license":"mit","count":"1551711"}\n\
{"license":"apache-2.0","count":"455316"}\n\
{"license":"gpl-2.0","count":"376453"}\n\
"""

result = []

for ndjson_line in ndjson_content.splitlines():
    if not ndjson_line.strip():
        continue  # ignore empty lines
    json_line = json.loads(ndjson_line)
    result.append(json_line)

json_expected_content = [
    {"license": "mit", "count": "1551711"},
    {"license": "apache-2.0", "count": "455316"},
    {"license": "gpl-2.0", "count": "376453"}
]

print(result == json_expected_content)  # True
 类似资料:
  • 我知道这可以通过将其实现为SplittableDoFn来解决--但是在Python中的实现示例并不清楚。我应该如何将这个DoFn构建为可拆分的,以及如何将它用作管道的一部分?

  • 问题内容: 我在SO上看到许多问题,询问将XML转换为JSON的方法,但我对采用其他方法感兴趣。是否有用于将JSON转换为XML的python库? 编辑: 什么都没有马上回来,所以我继续写了一个脚本来解决这个问题。 Python已经允许您将JSON转换为本地dict(使用或在版本2.6以下的中,),因此我编写了一个库,可将本地dict 转换为XML字符串。 https://github.com/q

  • 问题内容: 我需要传递一个可以使用转换的对象。查询如下所示: 为了传递可以转换为json的HttpResponse对象,我从这里需要做什么? 问题答案: 好吧,如果您只是这样做: 你会得到一个数组数组… 另一种方法是使用: 这将为您提供一个带有索引的json对象… 如果那不是您想要的,那么您需要指定结果的显示方式…

  • 问题内容: 我是使用subprocess.Popen()从进程的输出中获得的: 对我来说,它似乎不是有效的json。我已经使用和,但是没有运气。有人可以在正确的方向帮助我吗?提前致谢。 问题答案: 确实,导出ECMA脚本而不是JSON的旧版本。根据此debian错误报告,升级1.4.8应该会给您适当的JSON。另请参阅项目CHANGELOG: 现在,通过正确引用xport的键,xport的JSON

  • 问题内容: 我有一个从代码生成的点文件,想要在输出中呈现它。为此,我在网上看到命令是这样的 但是我的问题是我想在我的python程序中使用此内置函数。 我该怎么办? 我看着pydot,但似乎找不到答案。 问题答案: pydot无论如何都需要安装GraphViz二进制文件,因此,如果您已经生成了点文件,则不妨直接自己直接调用点。例如:

  • 问题内容: 如何将int(秒数)转换为mm:ss或hh:mm:ss格式? 我需要使用Python代码(如果可能,请在Django模板中)执行此操作。 问题答案: 我不敢相信众多答案中的任何一个都可以提供我认为的“一种明显的方法”(而且我什至都不是荷兰人!秒(特别是86399秒): 由于time过滤器支持时髦的时间格式语法(我相信是从PHP启发而来的),并且还需要datetime模块和时区实现(例如