【发布时间】:2016-11-23 06:40:21
【问题描述】:
我正在尝试构建一个将 json 文件导入 MongoDB 的 python 脚本。我的这部分脚本不断跳转到except ValueError 以获得更大的 json 文件。我认为这与逐行解析 json 文件有关,因为非常小的 json 文件似乎可以工作。
def read(jsonFiles):
from pymongo import MongoClient
client = MongoClient('mongodb://localhost:27017/')
db = client[args.db]
counter = 0
for jsonFile in jsonFiles:
with open(jsonFile, 'r') as f:
for line in f:
# load valid lines (should probably use rstrip)
if len(line) < 10: continue
try:
db[args.collection].insert(json.loads(line))
counter += 1
except pymongo.errors.DuplicateKeyError as dke:
if args.verbose:
print "Duplicate Key Error: ", dke
except ValueError as e:
if args.verbose:
print "Value Error: ", e
# friendly log message
if 0 == counter % 100 and 0 != counter and args.verbose: print "loaded line:", counter
if counter >= args.max:
break
我收到以下错误消息:
Value Error: Extra data: line 1 column 10 - line 2 column 1 (char 9 - 20)
Value Error: Extra data: line 1 column 8 - line 2 column 1 (char 7 - 18)
【问题讨论】:
-
文件可能不是有效的
json格式。
标签: python json mongodb pymongo