将一个txt文件转换为json格式,txt文档读取的每一行为一个str格式的字段,类似于json格式。以为只要使用 import json
之后,json.loads()
即可转化为json格式。
def data_clean(cls, file_path):
with open(file_path, 'r') as f:
str = f.readline()
print(str)
json_data = json.loads(str)
print(json_data)
报错:
json.decoder.JSONDecodeError: Expecting ':' delimiter: line 1 column 4 (char 3)
分析str字符串后发现,字符串首尾可能有空格,使用strip()
,之后因为字符串{}最外层有" “,即”{}",str使用的是"“北京”",而json为"北京"或者’北京’。json想要解析,str就必须为json形式的字符串。
比如:
[{"城市":"北京","面积":16800,"人口":1600},{"城市":"上海","面积":6400,"人口":1800}]
txt文档的每一行类似:
"[{""城市"":""北京"",""面积"":16800,""人口"":1600},{""城市"":""上海"",""面积"":6400,""人口"":1800}]"
修改程序如下:
def data_clean(cls, file_path):
with open(file_path, 'r') as f:
str = f.readline().strip().strip('\"').replace("\"\"", "\"")
print(str)
json_data = json.loads(str)
print(json_data)
debug结束。