【发布时间】:2019-01-10 03:45:51
【问题描述】:
每个人。需要帮助打开和阅读文件。
得到这个 txt 文件 - https://yadi.sk/i/1TH7_SYfLss0JQ
这是一本字典
{"id0":"url0", "id1":"url1", ..., "idn":"urln"}
但它是使用json写入txt文件的。
#This is how I dump the data into a txt
json.dump(after,open(os.path.join(os.getcwd(), 'before_log.txt'), 'a'))
所以,文件结构是 {"id0":"url0", "id1":"url1", ..., "idn":"urln"}{"id2":"url2", "id3":"url3", ..., "id4":"url4"}{"id5":"url5", "id6":"url6", ..., "id7":"url7"}
而且都是字符串....
我需要打开它并检查重复的ID,删除并再次保存。
但是得到 - json.loads 显示 ValueError: Extra data
试过这些: How to read line-delimited JSON from large file (line by line) Python json.loads shows ValueError: Extra data json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 190)
但仍然出现该错误,只是在不同的地方。
现在我做到了:
with open('111111111.txt', 'r') as log:
before_log = log.read()
before_log = before_log.replace('}{',', ').split(', ')
mu_dic = []
for i in before_log:
mu_dic.append(i)
这消除了连续多个 {}{}{} 字典/json 的问题。
也许有更好的方法来做到这一点?
附:文件是这样制作的:
json.dump(after,open(os.path.join(os.getcwd(), 'before_log.txt'), 'a'))
【问题讨论】:
-
如果您可以确定字符串中没有
}{,只需将}{替换为}\n{并拆分行。
标签: python json python-3.x