0

json.loads()Webページから解析したJSON文字列があり、それを使用してPython辞書に変換しようとしています。ただし、JSON文字列の一部の値には二重引用符が含まれています。

'{"title": "The "Star Wars Kid": Where is he now?"}'

明らかに、これは適切なJSON文字列ではなく、json.loads()文句を言います。これは単一の文字列であるため、のようなものを使用してもstring.replace('"', '\\"')機能しません。これを行うと、正しい二重引用符と悪い引用符に影響します。

ちなみに、これはスクレイピング時にHtmlXPathSelectorエラーを引き起こしません。これは、Webページでは、悪い引用符がそのようにエンコードされているためです。

'{"title": "The "Star Wars Kid": Where is he now?"}'

この文字列をで正しく解析するにはどうすればよいjson.loads()ですか?

編集:エンコードされた引用符がデコードされる前に文字列を解析するのは簡単だと理解しているので(2番目の例のように)、私が本当に求めているのは、このタイプのまだエンコードされた結果をpythonHtmlXPathSelector。

スクレイピングしているHTMLドキュメントにこの文字列が含まれている場合

'{"title": "The "Star Wars Kid": Where Is He Now?"}'

エンコードされた引用符をデコードせずに、HtmlXPathSelectorにその正確な文字列を返すようにするにはどうすればよいですか?

4

1 に答える 1

2
{"title": "The "Star Wars Kid": Where is he now?"}

これは、JSONをデコードする場合です。次に、後で「悪い引用符」を置き換えます。

于 2012-07-03T15:29:34.123 に答える