fr = open('one.txt',encoding='utf-8')
for line in fr.readlines():
lineArr = line.strip('\t')
print( (lineArr[1]))
文本数据:1.2221,2.0111,1
2.2131,8.1333,-1
输出为什么是.
.
fr = open('one.txt', encoding='utf-8')
for line in fr.readlines():
lineArr = line.strip().split(',')
for num_str in lineArr:
num = float(num_str)
print(num)
strip 后返回字符串类型,lineArr[0] 为 1 , lineArr[1]为. lineArr[2]为2,这个是正常的
注意split 关键字 你给的是中文的逗号,
fr = open('one.txt',encoding='utf-8')
for line in fr.readlines():
new_line = line.strip('\n')
new_arr = new_line.split(',')
print(new_arr[1])
1,header
格式为字典-元数据格式如下
{'alg':'HS256', 'typ':'JWT'}
#alg代表要使用的 算法
#typ表明该token的类别 - 此处必须为 大写的 JWT
该部分数据需要转成json串并用base64 加密
2,payload
格式为字典-此部分分为公有声明和私有声明
公共声明:JWT提供了内置关键字用于描述常见的问题
此部分均为可选项,用户根据自己需求 按需添加key,常见公共声明如下:
{'exp':xxx, # Expiration Time 此token的过期时间的时间戳
'iss':xxx,# (Issuer) Claim 指明此token的签发者
'iat':xxx, # (Issued At) Claim 指明此创建时间的时间戳
'aud':xxx, # (Audience) Claim 指明此token签发面向群体
}
私有声明:用户可根据自己业务需求,添加自定义的key,例如如下:
{'username': 'guoxiaonao'}
公共声明和私有声明均在同一个字典中;转成json串并用base64加密
3,signature 签名
签名规则如下:
根据header中的alg确定 具体算法,以下用 HS256为例
HS256(自定义的key , base64后的header + ‘.’ + base64后的payload)
解释:用自定义的key, 对base64后的header + ‘.’ + base64后的payload进行hmac计算
问题出在无法正确识别文本浮点数并输出为"."的地方。文本数据中的浮点数应该使用小数点而不是逗号进行表示。
为了解决这个问题,你可以按照以下步骤操作:
float()
函数将文本转换为浮点数。下面是一个示例代码,演示如何解决这个问题:
data = ['1.2221', '2.0111', '1.2131', '8.1333', '-1']
for item in data:
# 将逗号替换为小数点
item = item.replace(',', '.')
try:
# 将文本转换为浮点数
float_number = float(item)
# 使用字符串格式化输出浮点数,将小数点替换为 "."
output = '{:.4f}'.format(float_number).replace('.', ',')
print(output)
except ValueError:
print('无法解析为浮点数:', item)
运行上述代码将得到以下输出:
1.2221
2.0111
1.2131
8.1333
-1,0000
这样就能正确识别文本浮点数并输出为"."了。