[英]JSONDecodeError: Expecting property name enclosed in double quotes
[英]Python - JSONDecodeError: Expecting property name enclosed in double quotes
我已经检查了这个问题的现有答案,但我找不到我的具体问题是什么。 我试图解析我认为是有效的 JSON 对象,但不知何故它拒绝了它。
我使用此代码将数据从 API 响应转储到文件:
def write_video_ids_to_file(video_ids, video_data_file):
# Create file if it doesn't exist
file_is_empty = is_file_empty(video_data_file)
if file_is_empty:
open(video_data_file, 'w').close()
with open(video_data_file, 'a') as file:
json.dump(video_ids, file, indent=4, sort_keys=True, default=str)
print('collecting video ids')
下面的这段代码正在运行以尝试从文件中加载该 JSON 似乎失败了:
def construct_video_id_array(video_data_file):
with open(video_data_file, 'r') as file:
json_data = json.load(file) # <-- Failing here
video_ids_separate = []
for video in json_data:
video_ids_separate.append(video['video_id'])
return video_ids_separate
这是我的 JSON 数据示例(大约有 8 MB,所以我不打算全部发布):
{[
{
"channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
"collection_date": "2020-08-18 20:55:18.854967",
"publish_date": 1597784402.0,
"video_id": "5tBnaxQKpHQ"
},
{
"channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
"collection_date": "2020-08-18 20:55:18.854967",
"publish_date": 1597698002.0,
"video_id": "7J3H8ckUaYU"
}
]}
我最初在开头和结尾没有{ ,所以我添加了这些。 我不确定这是否是正确的举动,但就其价值而言,无论有没有它都不起作用,只是抛出不同的错误。
您的 JSON 内容应如下所示:
{ "your_data":[
{
"channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
"collection_date": "2020-08-18 20:55:18.854967",
"publish_date": 1597784402.0,
"video_id": "5tBnaxQKpHQ"
},
{
"channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
"collection_date": "2020-08-18 20:55:18.854967",
"publish_date": 1597698002.0,
"video_id": "7J3H8ckUaYU"
}
]}
这是有效的。 查看此网站: https://www.geeksforgeeks.org/json-load-in-python/以及https://jsonlint.com/ 。
所有 JSON 数据都需要一个键,甚至是一个列表。
您的 JSON 对象也应如下所示:
{ "your_data":[
{
"channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
"collection_date": "2020-08-18 20:55:18.854967",
"publish_date": 1597784402.0,
"video_id": "5tBnaxQKpHQ"
},
{
"channel_id": "UC9CuvdOVfMPvKCiwdGKL3cQ",
"collection_date": "2020-08-18 20:55:18.854967",
"publish_date": 1597698002.0,
"video_id": "7J3H8ckUaYU"
}
]}
所以文件json.dump将在文件中转储正确的 JSON 内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.