我有一个文件,每行有一个JSON文档;但是,其中一些文档格式错误,无法正确解析。
我目前的代码如下:
def load_tweets(file):
with open(file, 'r', encoding="UTF-8") as f:
tweets = (json.loads(line) for i, line in enumerate(f.readlines()))
return tweets
...然后我在推文中循环收集字段。 我知道在某些领域有双引号或其他令人讨厌的字符。我试过.... 1)手动搜索有问题的行,但文件很大2)循环中的try catch结构但是在尝试启动循环时出现错误:
for myfile in myfiles :
tweets = load_tweets(myfile)
for t in tweets:
print (t['id'], "\n")
try:
#print (t['id'])
data['id'].append(t['id'])
(...)
3)解码/编码但没有任何作用。
JSONDecodeError: Expecting ':' delimiter: line 1 column 5717 (char 5716)
我正在寻找一种方法,只是在出现格式错误的JSON时跳过行或删除行。我很乐意保留它,但我可以放弃它们。
我正在使用Python 3.4。 所有的帮助将不胜感激! :)
我的代码改编自here
答案 0 :(得分:1)
def load_tweets(file):
with open(file, 'r', encoding="UTF-8") as f:
for line in f:
try:
yield json.loads(line)
except JSONDecodeError:
pass
然后其余的代码可以是相同的。