3
respostas

Não consigo fazer a extração com a API nova [3]

O erro é parecido com o que os colegas postaram anteriormente, inclusive apliquei a mesma solução mas permanece.

Meu código é esse:

from datetime import datetime, timedelta
import os
import requests
import json


TIMESTAMP_FORMAT = "%Y-%m-%dT%H:%M:%S.00Z"

end_time = datetime.now().strftime(TIMESTAMP_FORMAT)
start_time = (datetime.now() + timedelta(-1)).date().strftime(TIMESTAMP_FORMAT)

query = "data science"

tweet_fields = "tweet.fields=author_id,conversation_id,created_at,id,in_reply_to_user_id,public_metrics,lang,text"
user_fields = "expansions=author_id&user.fields=id,name,username,created_at"

url_raw = f"https://labdados.com/2/tweets/search/recent?query={query}&{tweet_fields}&{user_fields}&start_time={start_time}&end_time={end_time}"

bearer_token = os.environ.get("BEARER_TOKEN")
headers = {"Authorization": "Bearer {}".format(bearer_token)}
response = requests.request("GET", url_raw, headers=headers)


response = requests.request("GET", url_raw)

json_response = response.json()

print(json.dumps(json_response, indent=4, sort_keys=True))

E o erro gerado é esse:

allan@allan-virtual-machine:~/src$ python3 extrair_dado_twt.py
Traceback (most recent call last):
  File "extrair_dado_twt.py", line 22, in <module>
    json_response = response.json()
  File "/usr/lib/python3/dist-packages/requests/models.py", line 897, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3/dist-packages/simplejson/__init__.py", line 518, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 370, in decode
    obj, end = self.raw_decode(s)
  File "/usr/lib/python3/dist-packages/simplejson/decoder.py", line 400, in raw_decode
    return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
3 respostas

Opa boa tarde, eu tive esse problema e achei a solução em outro post aqui, eu fiz essa configuração no timezone e funcionou

    time_zone = datetime.now().astimezone().tzname() 
    TIMESTAMP_FORMAT = f"%Y-%m-%dT%H:%M:%S.00{time_zone}:00"

Poxa Carlos, orbigado por responder, copiei igual você informou e colei lá, e mesmo assim o mesmo erro aparece

Ao recorrer ao GPT ele me deu a seguinte ajuda

import json

response = requests.request("GET", url_raw)

try:
    json_response = json.loads(response.text)
except json.JSONDecodeError as e:
    print(e)
else:
    print(json_response)

troquei pelo o que ele falou e deu certo, gostaria de saber a opinião do pq deu errado e pq esse codigo deu certo da galera com conhecimento avançado ai.