使用Python读取和写入JSON值

使用Python读取和写入JSON值,python,json,python-3.x,dictionary,Python,Json,Python 3.x,Dictionary,为了将api密钥存储在json中,我使用sof帮助编写了一个python程序,该程序接受用户的输入。以下代码工作正常,并写入json文件 import json k = {} k['key']='api_key='+ input("enter key") with open("sample.json", "w") as outfile: json.dump(k, outfile, indent=4) print("success") 输出:(写入文件) 但在使用以下代码读取时,它会垂直

为了将api密钥存储在json中,我使用sof帮助编写了一个python程序,该程序接受用户的输入。以下代码工作正常,并写入json文件

import json
k = {}
k['key']='api_key='+ input("enter key")
with open("sample.json", "w") as outfile:
    json.dump(k, outfile, indent=4)
print("success")
输出:(写入文件)

但在使用以下代码读取时,它会垂直输出

import json 

f = open('sample.json',) 
data = json.load(f) 
for i in data['key']: 
    print(i) 
f.close() 
输出:

a
p
i
_
k
e
y
=
f
d
c
j
l
k
l
h
k
k
g
j
y
f
8
7
6
9
l
j
l
i
h
h
f
h
d
a
s
f
d
s
a
g
f
如何获得正常输出。我认为有两种方法,一种是嵌套写入,另一种是不使用for循环读取

import json 

f = open('sample.json',) 
data = json.load(f) 
print(data['key'])
f.close() 
数据['key']本身是一个字符串。所以当你在它上面循环时,每次它遍历每个字符

Eg:

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

Output:
N
a
n
d
u

在对象
data['key']
上循环,但该对象是JSON文件中的
字符串。因此,for
循环的
将打印字符串的每个字符。查看更多信息。
您必须删除循环并直接访问密钥:

import json 

f = open('Sample.json',) 
data = json.load(f) 
print(data["key"]) 
f.close() 
或者将JSON中的成员
更改为数组:

{
    "key": [
        "fdcjlklhkkgjyf8769ljlihhfhdasfdsagf"
        ]
}
两者都将输出密钥:

$ python Test.py
fdcjlklhkkgjyf8769ljlihhfhdasfdsagf
因此,完整的代码如下所示(以两个键为例):

这导致:

{
    "key": [
        "a",
        "c"
    ]
}
可阅读:

import json 

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

$ python Test.py
a
c
用这个

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() 
你会得到


您正在使用数据['key']中的i对字符串进行迭代。
。您可能只需要
打印(数据['key'])
数据['key']
是一个字符串,所以只需直接打印而不循环。
数据[key]
本身指向该字符串。您只需在
数据[key]
上进行迭代,谢谢,是的,正如我所说,有两种方法,首先是删除循环或以嵌套方式(数组)写入。但是我一点也不能慢思考,所以把它放在这里。另外,你可以用用户输入的数组来更新你的答案吗?这将是这个问题的完美答案
import json 

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

$ python Test.py
a
c
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()