0

テキストファイルに含まれている次のjsonを読み込んでいます:

{
"data sources" : [
"http://www.gcmap.com/" 
] ,
"metros" : [
{
"code" : "SCL" ,
"name" : "Santiago" ,
"country" : "CL" ,
"continent" : "South America" ,
"timezone" : -4 ,
"coordinates" : {"S" : 33, "W" : 71} ,
"population" : 6000000 ,
"region" : 1
} , {
"code" : "LIM" ,
"name" : "Lima" ,
"country" : "PE" ,
"continent" : "South America" ,
"timezone" : -5 ,
"coordinates" : {"S" : 12, "W" : 77} ,
"population" : 9050000 ,
"region" : 1
} ]}

次に、このファイルを、それを開くpythonファイルと同じディレクトリに配置し、次のコードを使用します。

import json

json_file = open('json.txt')
data = json.load(json_file)
json_file.close()

print (data)

ただし、これによりエラーが発生します。

Traceback (most recent call last):
  File "/Users/tylerharrington/Desktop/workspace/Assignment2/src/cs242assignment2/UserInterface.py", line 11, in <module>
    data = json.load(json_file)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/json/__init__.py", line 264, in load
    parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/json/__init__.py", line 309, in loads
    return _default_decoder.decode(s)
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/json/decoder.py", line 352, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/json/decoder.py", line 368, in raw_decode
    obj, end = self.scan_once(s, idx)
ValueError: Expecting property name enclosed in double quotes: line 1 column 1 (char 1)

これは、Pythonファイルのエラーまたはコードのエラーを示していますか?

4

1 に答える 1

0
Expecting property name enclosed in double quotes: line 1 column 1 (char 1)

冒頭中括弧の直後の最初の行に、ファイルに無効な文字が含まれている可能性があります{

でファイルをダンプしてodファイルの内容を確認するか、Windowsで16進エディタでファイルを調べます

または、ファイルコンテンツを使用して次のコードスニペットを実行するだけです

with open('json.txt') as fin:
    for line in fin:
        print [hex(ord(e)) for e in line]

これにより、問題のあるキャラクターについての公正なアイデアが得られます

または単に

hex(ord(open('test.txt').read(2)[1]))
于 2013-02-21T17:06:05.130 に答える