You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:27:03