2017-06-16 5 views
0
with open('twit/example.json', encoding='utf8') as json_data: 
    for line in json_data: 
     try: 
      dataText = json.loads(line) 
     except ValueError: 
      continue 

for a in dataText: 
    print(a["user"]["location"]) 

le résultat est: indices de chaîne doivent être des entiersParsing JSON échoue en tant que chaînes apparaissent au lieu de dicts/Listes

Mise à jour: La ci-dessous réponse est pour l'impression

print(dataText["user"]["location"]) 

maintenant je veux celui-ci:

print(a["user"]["location"]) 
+0

À quoi ressemble le fichier JSON comme? – codeiscool

+0

il s'agit d'un fichier json de l'API de twitter et je veux imprimer l'emplacement de chaque tweets dans le fichier. – Mahran

+0

Voir ma réponse alors – codeiscool

Répondre

1

Si votre fichier json est dans un état normal le format, utilisez plutôt:

with open('twit/example.json', encoding='utf8') as json_data: 
    dataText = json.loads(line) 

for a in dataText: 
    print(dataText["user"]["location"]) 

La façon dont votre code est actuellement écrit me pensez que vous avez plusieurs structures rend JSON dans un seul fichier, séparés par de nouvelles lignes. Ce n'est pas comme ça que json est habituellement formaté.

+0

il dit fichier "", la ligne 5 pour en DataText: ^ IndentationError: unindent inattendu – Mahran

+0

édité le code, essayez à nouveau, mais supprimer le 'essayer:' et les 4 places avant – codeiscool

+0

il a travaillé, merci pour votre aide ,, – Mahran