首先数据是以标准的json格式的文本。然后想要通过python脚本来导入Mongodb中。
json
{
"service": "http",
"datetime": "2017-03-28 17:23:19",
"starttime": "1490692810",
"endtime": "1490692999",
"port": 80
}{
"service": "ewall",
"datetime": "2017-03-28 17:23:19",
"starttime": "1490692810",
"endtime": "1490692999",
"port": 1328
}
python部分代码:
with open(filen, 'r') as f:
while 1:
try:
jsonstr = f.readline().strip()
# print jsonstr 可以输出整个json的内容
if not jsonstr:
break
try:
j = json.loads(jsonstr) #这里好像不处理的问题
except:
continue
jsonlist.append(j)
except:
break
请问这个情况要怎么解决呢?谢谢
Votre problème est que le vôtre n'est pas au format json standard. Le format standard devrait être comme ceci
Deuxièmement, vos données sont lues en lignes. Veuillez me dire à quoi ressemble une ligne de vos données
La réponse de @sheep3 est correcte.
Si vous mettez JSON directement dans MongoDB, vous pouvez utiliser mongoimport (https://docs.mongodb.com/manu...
Si vous souhaitez toujours traiter des données, vous pouvez utiliser un code comme celui-ci :
Si le contenu du fichier JSON est plus grand que la mémoire, vous devez ouvrir le fichier JSON via le streaming. Vous pouvez utiliser le package ijson (https://pypi.python.org/pypi/...). L'utilisation est également relativement simple :
La réponse de @Christoph nommait directement une solution plus simple et optimisée, et j'ai appris une astuce