I have a code which get nested object and remove all nesting (make the object flat):
def flatten_json(y):
\"\"\"
@param y: Unflated Json
@return: Fla
I think you're looking for something like this?
import json
def create_jsonlines(original):
if isinstance(original, str):
original = json.loads(original)
return '\n'.join([json.dumps(original[outer_key], sort_keys=True)
for outer_key in sorted(original.keys(),
key=lambda x: int(x))])
# Added fake record to prove order is sorted
inp = {
"3": {"code": "en-FR", "id": 76, "name": "French", "languageName": "French"},
"0": {"code": "en-GB", "id": 77, "languageName": "English", "name": "English"},
"1": {"code": "de-DE", "id": 78, "languageName": "Deutsch", "name": "German"}
}
output = create_jsonlines(inp)
print(output)
Take a look at jsonlines on GitHub and install it from PyPi with pip install jsonlines
. The documentation is available here:
jsonlines is a Python library to simplify working with jsonlines and ndjson data.
This data format is straight-forward: it is simply one valid JSON value per line, encoded using UTF-8. While code to consume and create such data is not that complex, it quickly becomes non-trivial enough to warrant a dedicated library when adding data validation, error handling, support for both binary and text streams, and so on. This small library implements all that (and more!) so that applications using this format do not have to reinvent the wheel.