0

次の構造の .txt ファイルにデータベースを取得しました。

['http://legionanime.com/anime/blazblue-alter-memory.html - BlazBlue Alter Memory', 'http://1.bp.blogspot.com/-5d1npGAZFEQ/Ul_DbUa3MNI/AAAAAAAAP70/wAyDB9E7o9U/s1600/images.jpg - BlazBlue Alter Memory', 'http://legionanime.com/anime/blazblue-alter-memory.html - BlazBlue Alter MemoryBlazBlue Alter Memory', 'http://legionanime.com//.htmlA&ntildeo de emision: ']
['http://legionanime.com/anime/gundam-build-fighters.html - Gundam Build Fighters', 'http://2.bp.blogspot.com/-My_c7nCIx5M/Ul24Wo16H6I/AAAAAAAAP7M/zwPbKSVAlC8/s1600/descarga+(1).jpg - Gundam Build Fighters', 'http://legionanime.com/anime/gundam-build-fighters.html - Gundam Build FightersGundam Build Fighters', 'http://legionanime.com//.htmlA&ntildeo de emision: ']

このコードは機能するはずですが、機能しません。

print("starting")
leyendo = open("myfile.txt", "r")
readed = leyendo.read()
leyendo.close()

if not "[" in str(readed):
    print("File got wrong structure")
else:
    print("trying to load lines")
    with open("myfile.txt", 'r') as readinglines:
      for line in readinglines:
        print(line) #this one works
        lineaactual = json.loads(line) #only if this one doesn't exists. Here is the Error
      readinglines.close()
      print("Completed")

私が得ているエラーは「ValueError:JSONオブジェクトをデコードできませんでした」であり、その理由がわかりません。

データベースは、この関数で修正された html の raw コードから作成されました。

leidofixed = leido.replace('<div class="cont_anime"><div class="anime_box"><a href="', "['")
leidofixed = leidofixed.replace('" title="', " - ")
leidofixed = leidofixed.replace('"><img id="img2" src="', "', '")
leidofixed = leidofixed.replace('" alt="', " - ")
leidofixed = leidofixed.replace('"></a><div></div><span><h1><a href="', "', '")
leidofixed = leidofixed.replace('</a></h1></span><span2><a href="', "', '")
leidofixed = leidofixed.replace('</a></span2></div></div>', "']\n")
leidofixed = leidofixed.replace('">', "")

私が間違っているのは何ですか?

4

2 に答える 2

4

JSON は、単一引用符ではなく二重引用符を使用します。

試す:

lineaactual = json.loads(line.replace("'", '"'))
于 2013-10-21T23:31:22.050 に答える
1

これを試して:

json.loads(line.strip().replace("'", '"'))

JSON 文字列は"notで囲む必要があり'ます。JSON 仕様を参照

于 2013-10-21T23:30:06.713 に答える