-2
votes

Lire et écrire des valeurs JSON avec Python

Pour stocker une clé API dans JSON, j'ai créé un programme Python avec l'aide du SOF qui prend en charge de l'utilisateur. Le code suivant fonctionne bien et écrit au fichier JSON xxx

sortie: (écrit dans le fichier) xxx

mais en lisant avec le code suivant Il génère verticalement xxx

sortie: xxx

Comment puis-je obtenir une sortie normale. Je pense qu'il y a deux manières en écrivant à imbriquée ou à lire sans boucle.


3 commentaires

Vous êtes itération sur la chaîne avec pour i en données ['Key'] . Vous voulez probablement juste Imprimer (Data ['Key']) .


Data ['Key'] est une chaîne, alors imprimez-la directement sans boucle.


Data [Touche] Points sur la chaîne. Vous êtes simplement itérant sur les données [clé]


3 Réponses :


2
votes
Eg:

a='Nandu'
for i in a:
 print(i)

Output:
N
a
n
d
u

0 commentaires

1
votes

Vous en boucle sur l'objet Data ['Key'] code> Mais cet objet est une chaîne code> dans votre fichier JSON. Donc, la boucle pour code> imprimera chaque caractère de la chaîne. Vérifiez Ce pour plus d'informations. Vous devez supprimer la boucle et accéder à la clé directement: xxx pré>

ou vous modifiez votre membre clé code> dans votre JSON en une matrice: p>

import json 

f = open('Sample.json') 
data = json.load(f)
for Key in data["key"]:
    print(Key) 
f.close()

$ python Test.py
a
c


1 commentaires

Merci et oui, comme je l'ai dit, il y en a deux en supprimant la boucle ou en écrivant de manière imbriquée (tableau) en premier lieu. Mais je ne pouvais pas penser lentement pour un peu, alors mettez-le ici. Vous pouvez également mettre à jour votre réponse avec la rédaction comme une matrice à partir de l'entrée de l'utilisateur Cela faciliterait une réponse parfaite à la question



1
votes

Utilisation de cette

import json
k = {}
k['main']='api_key='+ input("enter key: ")
with open("sample.json", "w") as outfile:
    json.dump(k, outfile, indent=4)
print("successfully written")

f = open('sample.json',) 
data = json.load(f) 
print(data['main'][8:])
f.close() 


0 commentaires