首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫一排排字典到栏

熊猫一排排字典到栏
EN

Stack Overflow用户
提问于 2018-07-29 16:55:55
回答 1查看 357关注 0票数 1

我有一个JSON文件,当我试图把它读入熊猫时,它的输出是一行字典。我想要的是这些字典的行分开,键是列名。

以下是JSON文件示例数据的第一行

代码语言:javascript
运行
复制
"{ \"time_iso8601\": \"2018-05-11T03:33:26+00:00\", \"request\": \"GET /atom/ HTTP/1.1\", \"request_uri\": \"/atom/\", \"scheme\": \"https\", \"host\": \"grochmal.org\", \"server_protocol\": \"HTTP/1.1\", \"status\": 301, \"request_method\": \"GET\", \"request_length\": 272, \"request_time\": 0.000, \"request_id\": \"43db8100f133bd2b011dbf649e304a0d\", \"remote_addr\": \"207.46.13.183\", \"remote_port\": 1217, \"cookie_userid\": \"\", \"cookie_sessionid\": \"\", \"cookie_csrftoken\": \"\", \"content_length\": \"\", \"content_type\": \"\", \"ssl_cipher\": \"ECDHE-RSA-AES128-GCM-SHA256\", \"ssl_curves\": \"0x001d:prime256v1:secp384r1\", \"ssl_protocol\": \"TLSv1.2\", \"ssl_session_reused\": \".\", \"http2\": \"\", \"http_user_agent\": \"Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)\", \"http_x_forwarded_for\": \"\", \"http_referer\": \"\", \"http_x_csrf_token\": \"\", \"geoip_country_name\": \"United States\", \"geoip_country_code3\": \"USA\", \"geoip_city\": \"\", \"geoip_region_name\": \"\", \"geoip_latitude\": \"13.7500\", \"geoip_longitude\": \"100.4667\", \"gzip_ratio\": \"\", \"upstream_cache_status\": \"\", \"upstream_status\": \"\", \"upstream_response_time\": \"\", \"bytes_sent\": 486 }\n",

这是我的尝试

代码语言:javascript
运行
复制
df_accesslog=pd.read_json(‘data.json')
train = pd.concat([pd.DataFrame(x) for x in df_accesslog[0]).\
reset_index(level=1, drop=True).reset_index()

以上是直接使用

将包含字典列表的列转换为“熊猫数据”中的多列

下面是上面代码行的示例输出的屏幕截图

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-29 17:53:46

您可以使用ast.literal_evalstrings转换为lists,然后再使用json_normalize

代码语言:javascript
运行
复制
import json, ast
from pandas.io.json import json_normalize    

with open('data.json', encoding="utf8") as data_file:    
    data = json.load(data_file)

train = json_normalize([ast.literal_eval(x) for x in data])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51582538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档