-1

と の両方を含むadictで aを解析するのに問題があります。これは私のきれいな文字列です:listasciiunicode

pretty_string = """{
    "list": [
        "this_keyword_in_ascii",
        u"\u0627\u0644\u0623\u0633\u062f",                  # unicoded arabic
        u"\u0633\u0648\u0631\u064a\u0627",
        u"\u0627\u0644\u0625\u0631\u0647\u0627\u0628"
    ]
}
"""

でデコードすると、次のエラーが発生しdict = cjson.decode(pretty_string)ますDecodeError('cannot parse JSON description')

私はpretty_string.decode('unicode_escape')無駄にしようとしました。助けてください!

4

2 に答える 2

2

JSON 文字列がありません。Python リテラルがあります。代わりに次のast.literal_eval()関数を使用してください。

>>> literal_eval('''\
... {
...     "list": [
...         "this_keyword_in_ascii",
...         u"\u0627\u0644\u0623\u0633\u062f",                  # unicoded arabic
...         u"\u0633\u0648\u0631\u064a\u0627",
...         u"\u0627\u0644\u0625\u0631\u0647\u0627\u0628"
...     ]
... }
... ''')
{'list': ['this_keyword_in_ascii', u'\u0627\u0644\u0623\u0633\u062f', u'\u0633\u0648\u0631\u064a\u0627', u'\u0627\u0644\u0625\u0631\u0647\u0627\u0628']}

JSON 文字列が で始まることu""はありません。これは Python 表記です。また、JSON はバイト値と Unicode 値を混合しません。JSON 文字列は常に Unicode です。

この構造を生成するものを調べたいと思うかもしれません。おそらく、この文字列の生成物は、またはjson.dumps()の代わりに使用する必要があります。printstr()repr()

于 2013-05-31T12:12:04.913 に答える
1

Python 辞書を含む文字列を JSON としてデコードしようとしています。decodeJSON またはencodePython dict で使用する必要があります。

于 2013-05-31T12:11:43.107 に答える