当前位置: 首页 > 面试题库 >

从JSON到JSONL的Python转换

贺卜霸
2023-03-14
问题内容

我希望将标准JSON对象处理为一个对象,其中每行必须包含一个单独的,自包含的有效JSON对象。查看JSON行

JSON_file =

[{u'index': 1,
  u'no': 'A',
  u'met': u'1043205'},
 {u'index': 2,
  u'no': 'B',
  u'met': u'000031043206'},
 {u'index': 3,
  u'no': 'C',
  u'met': u'0031043207'}]

To JSONL

{u'index': 1, u'no': 'A', u'met': u'1043205'}
{u'index': 2, u'no': 'B', u'met': u'031043206'}
{u'index': 3, u'no': 'C', u'met': u'0031043207'}

我当前的解决方案是将JSON文件读取为文本文件,并[从开头和]结尾删除。因此,在每行上创建一个有效的JSON对象,而不是包含行的嵌套对象。

我想知道是否有更优雅的解决方案?我怀疑在文件上使用字符串操作可能会出错。

目的是json在Spark上将文件读入RDD。查看相关问题-使用Apache
Spark读取JSON-corrupt_record


问题答案:

您的输入似乎是一系列 Python对象 ;它当然不是有效的JSON文档。

如果您有Python字典的列表,那么您要做的就是将每个条目分别转储到文件中,然后换行:

import json

with open('output.jsonl', 'w') as outfile:
    for entry in JSON_file:
        json.dump(entry, outfile)
        outfile.write('\n')

json模块的默认配置是输出不嵌入换行符的JSON。

假设你的ABC名称是真正的弦乐,会产生:

{"index": 1, "met": "1043205", "no": "A"}
{"index": 2, "met": "000031043206", "no": "B"}
{"index": 3, "met": "0031043207", "no": "C"}

如果您从包含条目列表的JSON文档开始,只需先使用json.load()/解析该文档json.loads()



 类似资料:
  • 我正在开发一个Android应用程序。在我的应用程序中,我必须将字符串转换为JSON对象,然后解析值。我检查了Stackoverflow中的解决方案,并在这里的链接中发现了类似的问题 解决办法是这样的

  • 问题内容: 我有一个场景。 必需的输入和输出是JSON。 我需要一些转换代码或最好是xslt类型的语言才能将json从一种格式转换为另一种格式。该变压器也需要快速运行,因为转换将即时进行。 编辑 我没有收到INPUT对象的定义,它可能会在运行时更改。但是如果需要,我可以将类用于OUTPUT对象。我尝试以 json- > xml-> xslt-> xml-> json的方式进行此操作 ,但 此刻 每

  • 我想转换我的嵌套json消息,并使用Jolt规范只获取必需的文件- 我的输入JSON: 低于我的规格输出,这不是预期的- 我尝试了很多选择,但国籍不是我预期的输出。请在这里帮助颠簸转换

  • 有人知道如何在Python中将JSON转换为XLS吗? 我知道可以使用Python中的包创建文件。 如果我想将数据直接转换为文件,该怎么办? 有办法存档吗?

  • 问题内容: 我正在开发一个Android应用程序。在我的应用程序中,我必须将字符串转换为Json Object,然后解析值。我检查了stackoverflow中的解决方案,并在此处找到了类似的问题链接 解决方案是这样的 我在代码中使用相同的方式。我的绳子是 替换后,我得到了这样的结果 当我执行 我收到以下json异常 请帮助我解决我的问题。 问题答案: 删除斜杠:

  • 我试图有一个键值对映射到一个数组,区分每个值作为一个类型使用jolt转换规范 输入json 尝试了这个规格