[英]How can I import a str with a list of dicts into a pandas dataframe?
如何将包含数据的字符串从json转换为数据框?
s = "[{u'website': u'', u'volume': u'0', u'price': u'0.00000510', u'id': u'', u'name': u''}, {u'website': u'', u'volume': u'0.00032510', u'price': u'0.0000000000000000', u'id': u' abcd', u'name': u' ABCD'}, {u'website': u'', u'volume': u'0', u'price': u'0.00000003', u'id': u' ktae', u'name': u' KTAE'}]"
我已经使用网站API提取了此信息,将json响应转换为str并将其存储到sql数据库中。
现在,我已经从数据库中获取了这个字符串,并且我想用它创建一个数据框。
我怎样才能做到这一点?
我已经尝试过此代码,但是没有成功:
jdata = json.load(s)
df = pd.DataFrame.from_records(jdata)
上面的代码产生了具有[384806 rows x 1 columns]
的df
然后我试图再次使用索引...却没有成功:
columns = ['website', 'volume_btc', 'price_btc', 'id', 'name']
df = pd.DataFrame.from_records(jdata, index=columns)
错误信息:
ValueError: Shape of passed values is (1, 384806), indices imply (1, 5)
如何使用列表推导将此信息从str转换为dict格式并将其导入到pandas数据框中?
也许是这样的...
dict_data = [ dict(y.split(':') for y in x.split(',')) for x in data2.split('}, {')]
我已经在此答案中找到了它,但我不知道如何有效地使用它。Any1有一个线索吗?
我猜您的字符串s
不是常规的JSON字符串。 但是您可以尝试使用eval
将其评估为python对象,字典列表,然后让pandas处理:
In [12]: s = eval(s)
In [13]: pd.DataFrame(s)
Out[13]:
id name price volume website
0 0.00000510 0
1 abcd ABCD 0.0000000000000000 0.00032510
2 ktae KTAE 0.00000003 0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.