我有大约20000个邮政编码在一个CSV文件中的一列。我正试图通过API提取一些基于这些邮政编码的地理选举数据。这个API的url会迭代到最后(每次迭代邮政编码都会改变)。我尝试了许多不同的代码示例,但都不起作用。你知道吗
编辑:在下面粘贴一个我现在知道不起作用的示例-主要是因为我不需要strip函数。但是,如何让循环直接从CSV文件中提取邮政编码?也粘贴错误信息我得到。你知道吗
responses = list()
with open("testpostal.csv") as f:
for postal in map(str.strip,f):
rrr = requests.get('https://represent.opennorth.ca/postcodes/{}'.format(postal))
data = json.loads(rrr.text)
responses.append(data)
print(responses)
JSONDecodeError Traceback (most recent call last)
<ipython-input-182-05e370407e9c> in <module>()
9 for postal in map(str.strip,f):
10 rrr = requests.get('https://represent.opennorth.ca/postcodes/{}'.format(postal))
---> 11 data = json.loads(rrr.text)
12 responses.append(data)
13
~/anaconda3/lib/python3.7/json/__init__.py in loads(s, encoding, cls, object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, **kw)
346 parse_int is None and parse_float is None and
347 parse_constant is None and object_pairs_hook is None and not kw):
--> 348 return _default_decoder.decode(s)
349 if cls is None:
350 cls = JSONDecoder
~/anaconda3/lib/python3.7/json/decoder.py in decode(self, s, _w)
335
336 """
--> 337 obj, end = self.raw_decode(s, idx=_w(s, 0).end())
338 end = _w(s, end).end()
339 if end != len(s):
~/anaconda3/lib/python3.7/json/decoder.py in raw_decode(self, s, idx)
353 obj, end = self.scan_once(s, idx)
354 except StopIteration as err:
--> 355 raise JSONDecodeError("Expecting value", s, err.value) from None
356 return obj, end
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
包括你所犯的错误,这些错误将为你指明正确的方向。 首先
可能没什么意义。你知道吗
在使用strip函数时,应该包括要“strip”的内容以及要从中剥离的字符串。 例如,在this教程中:
退货:
Python提供了CSV module,使用它可以执行以下操作:
这样可以省去解析CSV文件的麻烦。如果我使用不带空格的加拿大邮政编码,上面的代码对我很有用。你知道吗
好吧,我知道我做错了什么。我只是让python将我的csv列作为列表读取,然后使用for循环以json格式获取结果。粘贴下面的代码,以防对任何人有帮助:
相关问题 更多 >
编程相关推荐