【问题标题】:python text parsing from onenote response string从onenote响应字符串解析python文本
【发布时间】:2017-05-23 00:20:16
【问题描述】:

如何将这样的字符串解析为数据结构。我应该使用什么解析工具?

u'{\r\n  "@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks(\'0-AB87696357344A7E%212879\')/sections(parentNotebook(id,name,self),parentSectionGroup(id,name,self))","value":[\r\n    {\r\n      "id":"0-AB87696357344A7E!2881","self":"https://www.onenote.com/api/v1.0/me/notes/sections/0-AB87696357344A7E!2881","createdTime":"2017-05-18T01:14:32.977Z","name":"Untitled Section","createdBy":"Jason","createdByIdentity":{\r\n        "user":{\r\n          "id":"AB87696357344A7E","displayName":"Jason"\r\n        }\r\n      },"lastModifiedBy":"Jason","lastModifiedByIdentity":{\r\n        "user":{\r\n          "id":"AB87696357344A7E","displayName":"Jason"\r\n        }\r\n      },"lastModifiedTime":"2017-05-18T02:19:00.587Z","isDefault":false,"pagesUrl":"https://www.onenote.com/api/v1.0/me/notes/sections/0-AB87696357344A7E!2881/pages","parentNotebook@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks(\'0-AB87696357344A7E%212879\')/sections(\'0-AB87696357344A7E%212881\')/parentNotebook(id,name,self)/$entity","parentNotebook":{\r\n        "id":"0-AB87696357344A7E!2879","name":"Companies and sectors","self":"https://www.onenote.com/api/v1.0/me/notes/notebooks/0-AB87696357344A7E!2879"\r\n      },"parentSectionGroup@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks(\'0-AB87696357344A7E%212879\')/sections(\'0-AB87696357344A7E%212881\')/parentSectionGroup(id,name,self)/$entity","parentSectionGroup":null\r\n    }\r\n  ]\r\n}'

【问题讨论】:

  • 认为什么是可读的?
  • 导入json 模块。然后使用:obj = json.loads(your_string)。然后你可以说:print(obj["@odata.context"]).
  • @Stephen Rauch。什么是可读的?如果您尝试阅读它,您将如何解析它?

标签: python json parsing


【解决方案1】:

正如 cmets 中提到的 SuperSaiyan,这是一个 JSON 字符串。所以很容易用json库解析:

import json
json_data = json.loads(
    u'{\r\n  "@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks(\'0-AB87696357344A7E%212879\')/sections(parentNotebook(id,name,self),parentSectionGroup(id,name,self))","value":[\r\n    {\r\n      "id":"0-AB87696357344A7E!2881","self":"https://www.onenote.com/api/v1.0/me/notes/sections/0-AB87696357344A7E!2881","createdTime":"2017-05-18T01:14:32.977Z","name":"Untitled Section","createdBy":"Jason","createdByIdentity":{\r\n        "user":{\r\n          "id":"AB87696357344A7E","displayName":"Jason"\r\n        }\r\n      },"lastModifiedBy":"Jason","lastModifiedByIdentity":{\r\n        "user":{\r\n          "id":"AB87696357344A7E","displayName":"Jason"\r\n        }\r\n      },"lastModifiedTime":"2017-05-18T02:19:00.587Z","isDefault":false,"pagesUrl":"https://www.onenote.com/api/v1.0/me/notes/sections/0-AB87696357344A7E!2881/pages","parentNotebook@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks(\'0-AB87696357344A7E%212879\')/sections(\'0-AB87696357344A7E%212881\')/parentNotebook(id,name,self)/$entity","parentNotebook":{\r\n        "id":"0-AB87696357344A7E!2879","name":"Companies and sectors","self":"https://www.onenote.com/api/v1.0/me/notes/notebooks/0-AB87696357344A7E!2879"\r\n      },"parentSectionGroup@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks(\'0-AB87696357344A7E%212879\')/sections(\'0-AB87696357344A7E%212881\')/parentSectionGroup(id,name,self)/$entity","parentSectionGroup":null\r\n    }\r\n  ]\r\n}'
)
print(type(json_data))
print(json_data['value'][0]['createdBy'])

结果:

<type 'dict'>
Jason

【讨论】:

  • 谢谢。之后我将其放入数据框中。 obj=json.loads(r.text) df = pd.DataFrame(obj.get('value', [])) 。在df中非常易读
猜你喜欢
  • 2023-03-27
  • 2014-09-03
  • 1970-01-01
  • 2021-06-03
  • 2021-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多