使用Python读取和写入JSON值
为了将api密钥存储在json中,我使用sof帮助编写了一个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") 输出:(写入文件) 但在使用以下代码读取时,它会垂直
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()