【问题标题】:Python: Splitting text/xml;charset=UTF-8Python:拆分文本/xml;charset=UTF-8
【发布时间】:2018-05-16 21:29:24
【问题描述】:

我向一个 api 发出请求,它返回了

b"001-1001\thazraja\t122.9668944300\t43.1858693000\t[YES]\t1456529273000\t2437.0000000000\n001-1002\tZ8s14\t122.9671153000\t43.1860681800\t[NO]\t1456529275000\t2462.0000000000\n..."

这样持续了一段时间,从回车“\n”重新开始。它在重新开始之前总是有 7 个项目。

print(response.headers["content-type"]) 返回

text/xml;charset=UTF-8

如何访问“001-1001”以及“thajraza”等?我不确定 api 返回的事物类型的名称是什么?是清单吗?一本字典?还有什么?

【问题讨论】:

  • 为什么要解析字典?它的意义是什么?另外,“这种类型的回报”到底指的是什么?
  • @UlrichEckhardt 我不明白 api 返回了什么。我看到它是由“b”指示的字节,我看到制表符和回车,我只是在寻找访问“001-1001”以及“thazraja”等的内容。
  • 更新了问题。
  • 啊。两件事:它声称是 XML (text/xml),这似乎是一个谎言。相反,这似乎是一个由制表符分隔的字符串序列。现在,要将“原始”字节转换为字符串,请使用 decode() 方法。这声称是 UTF-8 (charset=UTF-8),但这也可能是错误的,但这只会在您有 ASCII 以外的字符时显示。使用该字符串,按照您在下面找到的答案和/或 CSV 模块继续操作。

标签: python html dictionary utf-8


【解决方案1】:

哦,我明白了……this answer

>>> a = b'asdf\nasdf'
>>> a.split(b'\n')
[b'asdf', b'asdf']

我可以在制表符和回车处拆分它。我正在寻找解释。当您不知道适当的术语时,有时很难搜索。

【讨论】:

  • 您似乎有 CSV 数据(只是它是制表符分隔的,不是逗号分隔的,这并不重要)。尝试使用 csv 模块。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-05
  • 1970-01-01
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
  • 2014-01-02
  • 2017-09-01
相关资源
最近更新 更多