Несогласованность индексов символов при попытке проанализировать несколько JSON в файле.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Несогласованность индексов символов при попытке проанализировать несколько JSON в файле.

Сообщение Anonymous »

Я использую следующий код для анализа многострочных объектов JSON, разделенных запятой, из веб-строки, хранящейся в файле .json:
import json

def stream_read_json(fn):
start_pos = 0
with open(fn, 'r', encoding='utf-8') as f:
while True:
try:
obj = json.load(f)
yield obj
return
except json.JSONDecodeError as e:
f.seek(start_pos)
json_str = f.read(e.pos)
obj = json.loads(json_str, encoding = 'utf-8')
start_pos += e.pos
yield obj

Первый объект анализируется правильно; следующие - нет.
При тестировании случайных значений f.seek(start_pos) я вижу несоответствие индексу, найденному с помощью, кроме json.JSONDecodeError as e:. Почему этот индекс отличается от количества символов, отображаемых при выборе в IDE текста до символа, на котором заканчивается объект JSON в файле?
Как я могу гарантировать, что объекты будут правильно ли анализироваться?
Я пытался получить f.seek(start_pos) для второго объекта JSON в командной строке отладки, но он сильно отличается от e.pos выдается из-за ошибки.
Пример JSON находится здесь:
{
"user": {
"id": 1,
"profile": {
"name": "Alice",
"age": 30
}
},
"product": {
"sku": "A1234",
"details": {
"name": "Laptop",
"price": 999.99
}
}
},
{
"user": {
"id": 2,
"profile": {
"name": "Bob",
"age": 22
}
},
"product": {
"sku": "A123w",
"details": {
"name": "Laptop",
"price": 9.99
}
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... -in-a-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Google Map GeoCoding API не работает для некоторых почтовых индексов, но работает для некоторых других почтовых индексов
    Anonymous » » в форуме Jquery
    0 Ответы
    145 Просмотры
    Последнее сообщение Anonymous
  • Несогласованность при запуске java jar через CLI и IntelliJ
    Anonymous » » в форуме JAVA
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Несогласованность при анализе DateTime в одном и том же формате
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Несогласованность Lua pcall при работе с SIGINT в Linux
    Anonymous » » в форуме Linux
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Java при попытке проанализировать объект json с пробелом с помощью gson
    Anonymous » » в форуме JAVA
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»