У меня есть файл JSON, который включает в себя много документов.Каждый документ представляет собой данные из одного заказа на поставку.Я получаю файл из веб-службы в облачной системе заказов на покупку.Мне нужно загрузить каждый из этих документов в отдельную запись в базе данных Oracle.Я сделал это для других файлов документов JSON, используя функцию внешних таблиц Oracle, и это сработало.Тем не менее, другие файлы имели CRLF между каждым документом JSON.Файл, который я получаю от веб-службы, представляет собой один документ со многими заказами на поставку, без различий между заказами на покупку.
Я нашел здесь вопросы и ответы: Как разбить json на несколько файлов на документ ,Код, показанный в качестве решения:
import json
in_file_path='path/to/file.json' # Change me!
with open(in_file_path,'r') as in_json_file:
# Read the file and convert it to a dictionary
json_obj_list = json.load(in_json_file)
for json_obj in json_obj_list:
filename=json_obj['_id']+'.json'
with open(filename, 'w') as out_json_file:
# Save each obj to their respective filepath
# with pretty formatting thanks to `indent=4`
json.dump(json_obj, out_json_file, indent=4)
, но когда я пробую решение, я получаю сообщение об ошибке, как показано ниже:
[oracle@localhost gk]$ python36 split.py
Traceback (most recent call last):
File "split.py", line 11, in <module>
filename=json_obj['_id']+'.json'
TypeError: string indices must be integers
Мой файл JSON выглядит так:
{
"data": [
{
"number": "PB510698",
"uuid": "9cc06f21c1194038b137cec51b02606b"
},
etc ...
]
}
с несколькими документами (вложенными документами?), Которые начинаются с {"number":"PB510698","uuid"
Есть идеи, почему код из другого поста не работает?