【发布时间】:2016-10-14 02:13:27
【问题描述】:
from requests import Session
import json
import pandas as pd
query = '''SELECT referring_domain, event_name FROM cooladata LIMIT 5000000;'''
def SQLtoURL(query):
data = query.replace('\n', ' ').replace('\t',' ').replace(' ',' ').replace(' ',' ')
return data
def QueryCoola(query, file = None):
session = Session()
response = session.post(data = {'tq': query,'tqx': "out:csv",},
url = 'https://app.abcdefg.com/api/v2/projects/1111111/cql/',
headers = {'Authorization': 'Token ****************'},)
return response.text.encode('utf-8')
data = QueryCoola(SQLtoURL(query))
现在data 类型以字节为单位,我如何在列表或字典中获取data,以便将其传输到 pandas 数据帧中?
我目前正在做的是删除encode('utf-8'),所以我以文本形式获取它并手动将其拆分为一个列表,然后我可以将其移动到熊猫数据框中。问题在于空值等等我不想继续手动处理这些问题。任何帮助将不胜感激,谢谢。
print(QueryCoola(SQLtoURL(query)))
输出: b'"referring_domain"\n"www.google.com"\nnull\n"mood.reshet.tv"\n"m.facebook.com"\n"www.google.co.il"\nnull\nnull\ n"www.google.com"\n"mood.reshet.tv"\n"www.google.com"\n'
【问题讨论】:
-
你不能
json.loads吗? -
不,我试试。我认为它只是从字符串到列表
-
也许您应该发布一个数据实际外观的最小示例?
-
TypeError: the JSON object must be str, not 'bytes' -
是我在OUTPUT下写的不够好?如果是这样,您希望我发布什么?
标签: python json pandas python-requests