无法将JSON文件导入Python字典格式

时间:2020-04-17 03:58:07

标签: python json

我在导入json文件(从USPTO网站下载)时遇到问题-这是数据的外观:

Image of JSON file

我尝试使用的代码是:

   import json
   with open('2020.json') as json_file:
        data = json.load(json_file)

我收到错误消息“ Expecting':'delimiter:line 1 column 20 with the image。

我尝试将该位置的','更改为':',并且数据似乎可以作为字典很好地加载到“ data”变量中。但是,当我运行print(len(data))时,它返回“ 1”。

条目数显然不是'1'。我希望最终能够将数据转换为数据框以进行进一步的数据处理。有关如何解决此问题的任何建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为该文件可能包含一些奇怪的字符,只能以二进制格式读取。这在Windows上的Python 3.7中对我有用:

>>> import json
>>> with open('2020.json', 'rb') as f:
...     data = json.loads(f.read())
...
>>> type(data)
<class 'dict'>
>>> len(data.keys())
1
>>> list(data.keys())
['PatentBulkData']
>>>

如果不使用'rb'作为格式,我会感到奇怪(尽管与您看到的不一样:

>>> f = open('2020.json', 'r')
>>> json.load(f)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python37\lib\json\__init__.py", line 293, in load
    return loads(fp.read(),
  File "C:\Python37\lib\encodings\cp1252.py", line 23, in decode
    return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8d in position 11411895: character maps to <undefined>

此外,将来包含json文件的位置(如果可以公开下载)可能会很有用。 (我相信)我是从这里https://ped.uspto.gov/peds/找到的。