在Python中提取JSON数据-包含示例代码
我对使用JSON数据是全新的,对Python也是相当陌生的。我正在努力用Python解析以下JSON数据,以便将数据导入SQL Server数据库。我已经有了一个程序,可以使用PYDOBC将解析后的数据导入sql server,但是我一辈子都不知道如何将JSON数据正确解析到Python字典中 我知道有很多线程可以解决这个问题,但是我找不到任何相同JSON数据结构的示例。任何帮助都将不胜感激,因为我完全被困在这个问题上。谢谢你!下面是我正在处理的JSON数据的一部分:在Python中提取JSON数据-包含示例代码,python,json,parsing,dictionary,Python,Json,Parsing,Dictionary,我对使用JSON数据是全新的,对Python也是相当陌生的。我正在努力用Python解析以下JSON数据,以便将数据导入SQL Server数据库。我已经有了一个程序,可以使用PYDOBC将解析后的数据导入sql server,但是我一辈子都不知道如何将JSON数据正确解析到Python字典中 我知道有很多线程可以解决这个问题,但是我找不到任何相同JSON数据结构的示例。任何帮助都将不胜感激,因为我完全被困在这个问题上。谢谢你!下面是我正在处理的JSON数据的一部分: { "data":
{
"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)
回溯(最近一次呼叫最后一次):
文件“JSONpy”,第10行,在
data=json.load(json_文件)
文件“C:\json\\ uuuuuu init\ uuuuuuuuuu.py”,第291行,已加载
**千瓦)
文件“C:\json\\ uuuuu init\ uuuuu.py”,第339行,加载
返回\u默认\u解码器。解码
文件“C:\json\decoder.py”,第367行,在decode中
raise VALUERROR(errmsg(“额外数据”,s,end,len)))
ValueError:额外数据:第2行第1列-第7行第1列(字符23549-146249)
假设您描述的数据(减去..
省略号)位于名为j.json
的文件中,此代码将json文档解析为Python对象:
import json
with open("j.json") as json_file:
data = json.load(json_file)
assert data["data"][0]["metric"] == "users"
从错误消息来看,您的文件可能不是单个JSON文档,而是由换行符分隔的JSON文档序列。如果是这样,那么下面的代码可能会更有帮助:
import json
with open("j.json") as json_file:
for line in json_file:
data = json.loads(line)
print (data["data"][0]["metric"])
“如何将JSON数据正确解析到Python字典中。”--您尝试过什么?您是否尝试过导入json/
json.load(open('file.json'))
?我尝试过从json.load(open(file.json))到json_data=[json.load(line)for line in open(json)]的许多方法都没有帮助?如果是这样,请提供有问题的代码,并解释是哪个部分导致了错误。我也尝试过使用ijson包。我收到了很多不同的错误,我认为我面临的主要问题是,我没有正确地编写与JSON数据结构相关的Python代码。请您的问题提供一个示例程序。请提供一个简短、完整的程序来演示您看到的错误。请包括程序的所有输出,包括任何错误消息的全文。请描述您期望的输出结果。更多信息请参见。罗布,非常感谢你。这基本上是我在发布此线程之前尝试的最后一段代码。我从这段代码中收到的错误如下(我还将编辑我的原始问题,并添加出现在命令提示符中的完整错误的屏幕截图)。Error=“ValueError:额外数据:第2行第1列-第7行第1列(char 23549-146249)当我运行您提供的代码时,我附上了一个屏幕截图,显示了确切的错误消息。这非常有效,再次感谢Rob,这是一个巨大的帮助。Rob,如果不太麻烦的话,还有一个快速问题。现在是否可以将这些JSON文件加载到字典中,以便导出到SQL Server数据库中?如果可以,是哪一个Python模块是最好的使用方式。再次感谢您的帮助。抱歉,我不太了解如何导出到SQL Server数据库。但是,可以加载这些文件(它们不是JSON文件——JSON文件中只有一个JSON文档)。要从这样一个文件创建一个dict
,我可以这样做:对于I,枚举(json文件)中的行:result\u dict[I]=json.loads(line)
。