使用Python处理TXT转字典时如何去除多余的单引号
问题根因
- 你当前的代码只将每行按第一个空格拆分为两部分,把冒号后的所有内容都作为
serial对应的字符串值,打印字典时显示的单引号是Python标识字符串类型的默认格式,不是额外添加的多余字符,核心问题是你没有把整行的所有键值对解析为独立的字典字段。 - 你发送请求时携带的字典只有
serial一个键,值为整段字符串,不符合接口预期的多字段格式。
修复方案
你可以直接按分隔符拆分解析每行的所有键值对,示例代码如下:
import requests filename = 'offline_q.txt' # 提前定义好你的接口地址和请求头 send_data_url = "你的接口地址" headers = {"你的请求头key": "对应value"} with open(filename, encoding='utf-8') as f: for line in f: line = line.strip() # 跳过空行 if not line: continue record = {} # 按逗号分割每个键值对 key_value_pairs = line.split(', ') for pair in key_value_pairs: # 每个键值对按冒号分割为键和值,最多分割1次避免值里含冒号时解析出错 raw_key, raw_value = pair.split(': ', 1) # 去除键前后的双引号 key = raw_key.strip('"') # 值的类型转换:数字转int,其他(比如时间格式)保留为字符串 if raw_value.isdigit(): value = int(raw_value) else: value = raw_value.strip('"') record[key] = value # 此时record已经是解析完成的标准字典,不会出现整串为字符串的问题 print(record) # 发送请求 resp = requests.put(send_data_url, headers=headers, json=record) print(resp.status_code, resp.text)
验证效果
解析后的字典结构如下:
{'serial': 1300008948, 'material': 649010, 'siteID': 23, 'locCode': 2136276, 'timestamp': '2021/09/29T14:05:16'}
所有字段独立存在,值为对应类型,符合接口传参要求。
内容的提问来源于stack exchange,提问作者BIGPESH
相关产品推荐
相关产品推荐

