首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >json.load显示错误,而read_json没有相应地在列中拆分数据

json.load显示错误,而read_json没有相应地在列中拆分数据
EN

Stack Overflow用户
提问于 2021-07-11 20:30:37
回答 1查看 42关注 0票数 2

嗨,我正在尝试清理数据,但在读取作为单独数据帧列的json文件时遇到问题。我在一个文件中有数千条这样的记录:

代码语言:javascript
复制
{"hotel_class": 4.0, 
"region_id": 60763,
"url": "http://www.tripadvisor.com/Hotel_Review-g60763-d113317-Reviews Casablanca_Hotel_Times_Square-New_York_City_New_York.html", 
"phone": "", 
"details": null,
"address": {"region": "NY", "street-address": "147 West 43rd Street", "postal-code": "10036", "locality": "New York City"},
"type": "hotel",
"id": 113317,
"name": "Casablanca Hotel Times Square"}

我尝试将其加载为:

代码语言:javascript
复制
with open('offering.txt') as datafile:
  data_json = json.load(datafile)

但是它给出了一个错误,即

代码语言:javascript
复制
JSONDecodeError: Extra data: line 2 column 1 (char 398)

所以我试着用

代码语言:javascript
复制
df=pd.read_json('offering.txt',lines=True)

但是如果我这样做,我的address列有嵌套的值,我想将它们分隔在不同的列中。该怎么做呢?

代码语言:javascript
复制
df['address']

0       {'region': 'NY', 'street-address': '147 West 4...
1       {'region': 'CA', 'street-address': '300 S Dohe...
2       {'region': 'NY', 'street-address': '790 Eighth...
3       {'region': 'NY', 'street-address': '152 West 5...
4       {'region': 'NY', 'street-address': '130 West 4...

Name: address, Length: 4333, dtype: object
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-11 20:34:59

尝试:

代码语言:javascript
复制
df = pd.read_json("offering.txt", lines=True)

df_out = pd.concat([df, df.pop("address").apply(pd.Series)], axis=1)
print(df_out)

打印:

代码语言:javascript
复制
   hotel_class  region_id                                                                                                                       url phone  details   type      id                           name region        street-address postal-code       locality
0            4      60763  http://www.tripadvisor.com/Hotel_Review-g60763-d113317-Reviews Casablanca_Hotel_Times_Square-New_York_City_New_York.html            NaN  hotel  113317  Casablanca Hotel Times Square     NY  147 West 43rd Street       10036  New York City
1            5      60763  http://www.tripadvisor.com/Hotel_Review-g60763-d113317-Reviews Casablanca_Hotel_Times_Square-New_York_City_New_York.html            NaN  hotel  113317  Casablanca Hotel Times Square     CA  147 West 43rd Street       10036  New York City

...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68336247

复制
相关文章

相似问题

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