如何读取带外层引号的JSON文件并转为Python可操作数组?
解决JSON数组读取后为字符串的问题
你的核心问题是JSON文件内容并非原生数组,而是被双引号包裹的字符串形式的数组。比如文件实际内容是 "["SOMEURL","SOMEURL"]",而非直接的 ["SOMEURL","SOMEURL"],这导致第一次json.loads只能解析出字符串,而非列表。
方案1:修正JSON文件(推荐)
直接删除JSON文件外层的双引号,让内容变为标准的JSON数组格式:
["SOMEURL","SOMEURL","SOMEURL","SOMEURL"]
此时你原来的代码就能正常工作,aList会是Python列表,可直接通过索引访问元素(比如aList[0])。
方案2:二次解析(无法修改文件时使用)
如果不能修改原文件,需要先解析外层的字符串,再将该字符串解析为JSON数组:
import json # 用with语句更安全,自动关闭文件 with open("doc_1.json", "r") as f: content = f.read() # 第一次解析得到包裹数组的字符串 array_str = json.loads(content) # 第二次解析字符串为Python列表 a_list = json.loads(array_str) # 测试访问元素 print(a_list) print(a_list[0]) # 输出第一个URL
内容的提问来源于stack exchange,提问作者Dimas del Pablo
相关产品推荐
相关产品推荐

