【发布时间】:2020-08-19 10:59:29
【问题描述】:
我有一个 json 文件,我正在尝试使用以下代码读取该文件
import json
with open('sample.json') as file:
data = json.load(file)
我收到以下错误
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我的猜测是 json 文件无效,所以我在文本编辑器中打开了 json 文件并复制了数据并尝试通过在线 json 验证器对其进行验证,在线工具确认它是有效的 json。
所以我想了解我的笔记本在阅读文件时正在阅读什么,所以我尝试打印字符串,令人惊讶的是,字符串有很多不需要的值,例如 \n 和  等当我在记事本中打开 json 文件时肯定不存在。
with open('sample.json') as file:
test_text = file.read()
print(test_text)
o/p 当我尝试打印读取的文件时,我进入了 python 笔记本:
'[{"iteration" : {"id" :"value"},
"filename" : "testfile.json"
}\n,
{"iteration" : {"id" :"value1"},
"filename" : "testfile2.json"
}\n]'
请告知我做错了什么以及如何解决这个问题
【问题讨论】:
-
开头的字符看起来像UTF-8 BOM。也许这会有所帮助? stackoverflow.com/questions/13156395/…
-
@AndrejKesely 非常感谢编码:utf-8-sig 成功了。出于好奇,这些编码模式是什么?
-
是什么进程创建了这个文件,或者这个文件是从哪里来的?
-
@CobyC 该文件是在 Azure DataFactory 上创建并以 UTF-8 格式编码的
-
@Stramzik 请参阅 Python 编解码器文档中 this section 的最后两段。
标签: python json python-3.x