用Python提取JSON数据 - 包含示例代码

时间:2017-03-08 17:59:40

标签: python json parsing dictionary

我是使用JSON数据的新手,也是Python的新手。我正在努力解析Python中的以下JSON数据,以便将数据导入SQL Server数据库。我已经有了一个程序,可以使用PYDOBC将解析后的数据导入到sql server中,但是我终生无法弄清楚如何正确地将JSON数据解析成Python字典。

我知道有很多线程可以解决这个问题,但我无法找到相同JSON数据结构的任何示例。任何帮助将不胜感激,因为我完全陷入这个问题。谢谢你这么!下面是我正在使用的JSON数据的剪切:

{
 "data": 
 [
  {
    "name": "Mobile Application",
    "url": "https://www.example-url.com",
    "metric": "users",
    "package": "example_pkg",
    "country": "USA",
    "data": [  
      [ 1396137600000, 5.76 ],
      [ 1396224000000, 5.79 ],
      [ 1396310400000, 6.72 ],
      ....
      [ 1487376000000, 7.15 ]
    ]
  }
],"as_of":"2017-01-22"}

再次,如果这个帖子是重复的,我道歉,但正如我上面提到的,我无法从其他线程中找出逻辑,因为我是使用JSON的新手。

再次感谢您提供有关此方面的任何帮助或建议。

import json

with open("C:\\Pathyway\\7Park.json") as json_file:
data = json.load(json_file)
assert data["data"][0]["metric"] == "users"

以上代码会导致以下错误:

Traceback (most recent call last):
  File "JSONpy", line 10, in <module>
    data = json.load(json_file)
  File "C:\json\__init__.py", line 291, in load
    **kw)
  File "C:\json\__init__.py", line 339, in loads
    return _default_decoder.decode(s)
  File "C:\json\decoder.py", line 367, in decode
    raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 2 column 1 - line 7 column 1 (char 23549 - 146249)

1 个答案:

答案 0 :(得分:1)

假设您所描述的数据(少于j.json省略号)位于名为import json with open("j.json") as json_file: data = json.load(json_file) assert data["data"][0]["metric"] == "users" 的文件中,此代码将JSON文档解析为Python对象:

import json

with open("j.json") as json_file:
    for line in json_file:
        data = json.loads(line)
        print (data["data"][0]["metric"])

从您的错误消息中,您的文件似乎可能不是单个JSON文档,而是由换行符分隔的一系列JSON文档。如果是这种情况,那么这段代码可能会更有帮助:

{{1}}