我的程序中的“ NoneType”对象有一些问题(写在熊猫上)。 这是我的代码:
import asyncio
from aiohttp import ClientSession
from pyairvisual import Client
import pandas as pd
place = ['Brussels','Steenokkerzeel','Antwerpen','Aarschot','Amsterdam','London']
state1 = ['Brussels Capital','Flanders','Flanders','Flanders','North Holland','England']
n = 2
async def main() -> None:
"""Create the aiohttp session and run the example."""
async with ClientSession() as websession:
client = Client('fWw2GEy25CqmFQMaA', websession)
data = await client.data.city(
city = place[n], state = state1[n], country = 'Belgium')
print(data)
asyncio.get_event_loop().run_until_complete(main())
我尝试过:
asyncio.get_event_loop().run_until_complete(main()).to_string()
但是结果是:
{'city': 'Antwerpen', 'state': 'Flanders', 'country': 'Belgium', 'location':
{'type': 'Point', 'coordinates': [4.34100506499574, 51.1702980406645]},
'current': {'weather': {'ts': '2018-10-30T06:00:00.000Z', 'hu': 60, 'ic':
'09n', 'pr': 986, 'tp': 4, 'wd': 350, 'ws': 1.5}, 'pollution': {'ts': '2018-
10-30T07:00:00.000Z', 'aqius': 33, 'mainus': 'p2', 'aqicn': 16, 'maincn':
'n2'}}}
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-22-a1764c0a80fe> in <module>()
----> 1 asyncio.get_event_loop().run_until_complete(main()).to_string()
AttributeError: 'NoneType' object has no attribute 'to_string'
我想获得荣誉之间的数据并将其设置为字符串或DataFrame,但是我不知道如何将“ NoneType”对象转换为字符串或DataFrame。别人知道解决方案吗?
谢谢。
答案 0 :(得分:1)
您当前正在从协程None
返回main()
,如通过类型提示所指示的那样。 (并且因为print()
的返回值为None
)。
loop.run_until_complete()
将传输main()
的返回值None
,结果您尝试调用None.to_string()
。
您需要return
中的main()
对象。这取决于您:
async def main() -> None:
async with ClientSession() as websession:
client = Client('fWw2GEy25CqmFQMaA', websession)
data = await client.data.city(
city=place[n], state=state1[n], country='Belgium')
return data
如果您要使用字符串而不是.to_string()
,请在异步调用的结果上使用json.dumps()
。如果要使用DataFrame,请查看Pandas文档,了解如何从Python字典中实例化DataFrame。