我是使用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)
答案 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}}