![](/img/trans.png)
[英]JSON file is converted to string while using json.load in Python
[英]Python Interprter error while loading JSON file using json.load()
这是我用于解析JSON文件的python代码。
import os
import argparse
import json
import datetime
ResultsJson = "sample.json"
try:
with open(ResultsJson, 'r') as j:
jsonbuffer = json.load(j)
result_data = json.loads(jsonbuffer)
print("Just after loading json")
except Exception as e:
print(e, exc_info=True)
我还附加了我在这里使用的JSON文件“ sample.json”。 sample.json
{
"idx": 1,
"timestamp": 1562781093.1182132,
"machine_id": "tool_2",
"part_id": "af71ce94-e9b2-47c0-ab47-a82600616b6d",
"image_id": "14cfb9e9-1f38-4126-821b-284d7584b739",
"cam_sn": "camera-serial-number",
"defects": [
{
"type": 0,
"tl": [169, 776],
"br": [207, 799]
},
{
"type": 0,
"tl": [404, 224],
"br": [475, 228]
},
{
"type": 1,
"tl": [81, 765],
"br": [130, 782]
}
],
"display_info": [
{
"info": "DEFECT DETECTED",
"priority": 2
}
]
}
不知道我在这里错过了什么。 我是Python的新手(来自C ++背景)。 如果我错过了一些基本的知识,请对我轻松一点。
您不需要此行:
result_data = json.loads(jsonbuffer)
......因为jsonbuffer
的结果是json.load
,所以它已经解析JSON文件的结果。 在您的情况下,这是一个Python字典,但是json.loads
需要一个字符串,因此会出现错误。
同样,如第二条错误消息所述, exc_info
不是print
功能的有效关键字参数。 如果要打印异常,只需执行print(e)
。
您可以执行以下任一操作:
with open(ResultsJson, 'r') as j:
result_data = json.load(j)
print("Just after loading json")
要么:
with open(ResultsJson, 'r') as j:
result_data = json.loads(j.read())
print("Just after loading json")
json.load()内部调用json.loads()函数
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.