为什么这个 python 函数没有正确读取我的 json 文件字符串?
Why is this python function not reading my json File string properly?
所以我有一个唯一的玩家 ID 字符串,它在启动时检测到玩家是游戏新手后存储在 JSON 文件中。
def checkIfPlayerIsNew():
if os.path.exists("myJson.json"):
print('file exists')
k = open('myPlayerIDs.json')
print(k.read())
#print("This is the k value: {}".format(code))
#code = json.dumps(k)
getData(k.read())
else:
print('file does not exist')
f = open('myJson.json', 'x') #creates the file if it doesn't exist already
f.close()
file = open('myPlayerIDs.json', 'w')
file.write(json.dumps(str(uuid.uuid4())))
file.close
checkIfPlayerIsNew()
现在, 如果它检测到玩家不是新玩家,它会从 JSON 文件中获取 ID 并将其传递给下面的获取数据函数
def getData(idCode = "X"):
print('the id code is this: {}'.format(idCode))
outputFile = json.load(open('myJson.json'))
for majorkey, subdict in outputFile.items():
if majorkey == idCode:
for subkey, value in subdict.items():
print('{} = {}'.format(subkey, value))
#playerData[subkey] = value
else:
print("ID Does not match")
break
问题 是当我在获取数据函数中检查 id 代码时它打印出一个空白 space 就好像 id 代码已被更改为空(我不知道为什么这样做)并将其打印到终端:
玩家ID JSON文件:
您不能 read()
一个文件两次而不返回开头。这里正确的做法是将文件读入变量:
if os.path.exists("myJson.json"):
print('file exists')
# Read file into a variable and use it twice
with open('myPlayerIDs.json', 'r') as k:
data = k.read()
print(data)
getData(data)
#...
所以我有一个唯一的玩家 ID 字符串,它在启动时检测到玩家是游戏新手后存储在 JSON 文件中。
def checkIfPlayerIsNew():
if os.path.exists("myJson.json"):
print('file exists')
k = open('myPlayerIDs.json')
print(k.read())
#print("This is the k value: {}".format(code))
#code = json.dumps(k)
getData(k.read())
else:
print('file does not exist')
f = open('myJson.json', 'x') #creates the file if it doesn't exist already
f.close()
file = open('myPlayerIDs.json', 'w')
file.write(json.dumps(str(uuid.uuid4())))
file.close
checkIfPlayerIsNew()
现在, 如果它检测到玩家不是新玩家,它会从 JSON 文件中获取 ID 并将其传递给下面的获取数据函数
def getData(idCode = "X"):
print('the id code is this: {}'.format(idCode))
outputFile = json.load(open('myJson.json'))
for majorkey, subdict in outputFile.items():
if majorkey == idCode:
for subkey, value in subdict.items():
print('{} = {}'.format(subkey, value))
#playerData[subkey] = value
else:
print("ID Does not match")
break
问题 是当我在获取数据函数中检查 id 代码时它打印出一个空白 space 就好像 id 代码已被更改为空(我不知道为什么这样做)并将其打印到终端:
玩家ID JSON文件:
您不能 read()
一个文件两次而不返回开头。这里正确的做法是将文件读入变量:
if os.path.exists("myJson.json"):
print('file exists')
# Read file into a variable and use it twice
with open('myPlayerIDs.json', 'r') as k:
data = k.read()
print(data)
getData(data)
#...