我在一个文件中有下面的json数据,我试图在python中读取,但是我得到了这个错误。我做错了什么?
[
{
"name": "Alex C",
"age": 2,
"city": "Houston"
},
{
"name": "John G",
"age": 40,
"city": "Washington"
},
{
"name": "Bala T",
"age": 22,
"city": "Bangalore"
}
]
下面是我的代码:
JFile = "JData.json"
F = open(JFile, "w")
try:
proc = subprocess.Popen([MyCMD], shell=True, encoding='utf-8', stdout=F)
except Exception as ex:
print("ERROR: CMD Failed....", ex)
F.close()
try:
with open(JFile, 'r', encoding='utf-8') as J:
JData = json.loads(J.read())
except json.decoder.JSONDecodeError as e:
print("invalid json", e)
当我尝试运行这个时,我得到这个错误:
无效的json预期值:第1行第1列(字符0)
4条答案
按热度按时间tjrkku2a1#
这个错误意味着解释器认为你的数据不是有效的JSON,尽管你提供的示例是有效的JSON。你提供的代码在我的本地解释器(Windows 10,Python 3.9.5,标准
json
库)中可以正常工作。我会仔细检查
JFile
变量是否实际指向您认为的文件,以及JSON之前的文件中是否没有其他数据(前导空格应该是可以接受的)。如果检查出来,我会尝试重新保存您的文件,以确保它确实是utf-8
编码或尝试阅读它没有显式设置encoding='utf-8'
在您的代码。我 * 认为 *编码不匹配将抛出不同的错误,但没有明显的错误,因此值得检查。gorkyyrv2#
JFile
看起来像什么?它是包含你的json对象的文件的相对路径吗?1.尝试使用完整路径(不要忘记文件扩展名).
1.请确保python解释器有读取该文件的权限。
blmhpbnm3#
当
json.load
接收到一个空字符串时,会抛出错误Expecting value: line 1 column 1 (char 0)
。您是否仔细检查过您试图读取的文件是否包含您认为的内容,并且是否位于正确的目录中?假设文件包含有效的JSON,您的代码应该可以工作。pxyaymoc4#
实际上,当我试图读入代码时,json文件还没有创建,我不得不添加proc.wait()来解决我的问题。