【发布时间】:2020-09-05 20:23:32
【问题描述】:
我查看了该问题的现有答案,但找不到我的具体问题。我正在尝试解析我 认为 是有效的 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 加载文件对象使用:json.load(file.read())
-
不,因为我没有使用带字符串的 json.loads() 。我正在使用带有文件对象的 json.load()。
-
抱歉你写的。
-
你的 json 无效我的帖子能回答你的问题吗