2013-03-01 2 views
0

В json.txt У меня есть эти данные:Разбор данных JSON в .txt результаты ValueError

"""{"iPod": "apple"}""" 

Этот код является то, что разборе json.txt:

f = open("json.txt", "r") 
json_data = f.read() 
f.close 

print json.loads(json_data) 

Это приводит к:

ValueError: Extra data: line1 column2 - line2 column1(char2-24)

Я хочу json.txt, чтобы оставаться в состоянии сейчас.

Как сменить этот код?

+0

Почему у вас есть тройные кавычки? –

+0

unutbu is right, you json включает тройные кавычки, что делает его недействительным. Вы можете проверить [здесь] (http://jsonformatter.curiousconcept.com/), если формат вашего json правильный – Darth

+0

Извините. Я взял это из Интернета. – luxz

ответ

0

Похоже, что ваш json_data содержит тройные кавычки. Вам нужно лишить их перед передачей JSON в json.loads:

with open("json.txt", "r") as f: 
    json_data = f.read().strip('"') 

print json.loads(json_data) 
+0

Результат ValueError тоже. – luxz

+0

Пожалуйста, опубликуйте результат 'print (repr (json_data))'. – unutbu

1

Причина unbuntu в ответ не работает, потому что, когда вы читаете файл, он содержит \n полукокса.

'"""{"iPod": "apple"}"""\n' 

Вы также должны удалить его.

import json 
with open("json.txt", "r") as f: 
    json_data = f.read().strip('"\n') 

print json.loads(json_data) 
+1

Наверное, лучше использовать '.strip ('" \ n') 'вместо этого ... –

+0

спасибо обновленный ответ. Забыл ли он из нескольких символов. –

Смежные вопросы