尝试实现此代码并继续收到以下错误。我搜索并尝试了一切,没有任何东西让我超越它。
import json
import sys
import re
import os
reload(sys)
sys.setdefaultencoding('utf8')
path = '/Users/.../' #(The actual path is in my code)
textfiles = []
for root, dirs, files in os.walk(r'/Users/.../'):
for file in files:
if file.endswith(".txt"):
textfiles.append(file)
for filename in textfiles:
with open(path + filename) as json_data:
data = json.load(json_data)
opinion = data['plain_text']
f = open(path + filename, 'w')
f.write(opinion)
f.close()
然后,我不断收到此错误:
ValueError:Expecting,delimiter:第17行第3列(char 765)
答案 0 :(得分:2)
显然你的问题在于JSON文件..但是哪一个?其中??
如果您输入try/except
子句,则可以记录并查看导致问题的文件,以便您可以更轻松地进行调试。
import json
import sys
import re
import os
reload(sys)
sys.setdefaultencoding('utf8')
path = '/Users/.../' (The actual path is in my code)
textfiles = []
for root, dirs, files in os.walk(r'/Users/.../'):
for file in files:
if file.endswith(".txt"):
textfiles.append(file)
for filename in textfiles:
try:
with open(path + filename) as json_data:
data = json.load(json_data)
opinion = data['plain_text']
f = open(path + filename, 'w')
f.write(opinion)
f.close()
except ValueError as e:
print(filename) # Gives the filename
print(e) # Gives the location of the problem in the file
此外,它应该继续遍历文件并提供有问题的错误。
您甚至可以保存到log.txt以便以后处理..
这是一个小例子
lst = [1, 2, '3', 4, 5]
for i in lst:
try:
l = 123 + i
print(l)
except Exception as e:
print(e)
输出:
124
125
unsupported operand type(s) for +: 'int' and 'str'
127
128
答案 1 :(得分:1)
它说你的一个JSON文件中第17行缺少逗号。哪一个?错误应该有更多的上下文,但如果没有,你应该尝试通过处理较小批量的文件来隔离它。
另外,为什么JSON数据中会有700多个字符?