读取python中的json文件时出错,预期值:第1行第1列(字符0)

3duebb1j  于 2023-01-27  发布在  Python
关注(0)|答案(4)|浏览(194)

我在一个文件中有下面的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)

tjrkku2a

tjrkku2a1#

这个错误意味着解释器认为你的数据不是有效的JSON,尽管你提供的示例是有效的JSON。你提供的代码在我的本地解释器(Windows 10,Python 3.9.5,标准json库)中可以正常工作。
我会仔细检查JFile变量是否实际指向您认为的文件,以及JSON之前的文件中是否没有其他数据(前导空格应该是可以接受的)。如果检查出来,我会尝试重新保存您的文件,以确保它确实是utf-8编码或尝试阅读它没有显式设置encoding='utf-8'在您的代码。我 * 认为 *编码不匹配将抛出不同的错误,但没有明显的错误,因此值得检查。

gorkyyrv

gorkyyrv2#

JFile看起来像什么?它是包含你的json对象的文件的相对路径吗?
1.尝试使用完整路径(不要忘记文件扩展名).
1.请确保python解释器有读取该文件的权限。

blmhpbnm

blmhpbnm3#

json.load接收到一个空字符串时,会抛出错误Expecting value: line 1 column 1 (char 0)。您是否仔细检查过您试图读取的文件是否包含您认为的内容,并且是否位于正确的目录中?假设文件包含有效的JSON,您的代码应该可以工作。

pxyaymoc

pxyaymoc4#

实际上,当我试图读入代码时,json文件还没有创建,我不得不添加proc.wait()来解决我的问题。

JFile = "JData.json"
F = open(JFile, "w")
try:
    proc = subprocess.Popen([MyCMD], shell=True, encoding='utf-8', stdout=F)
    proc.wait()
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)

相关问题