[英]How to print just the name in this JSON object in Python 3.8
前言 - 我正处于 python 知识的早期阶段,所以我可能不知道到底要谷歌什么。 一直在寻找最后一天左右的想法,但没有解决这个问题。
这是 object 示例:
"shipping_address": "John Doe\n234 NE Asdf St.\nAsdf Town, Oregon, 14423\nUnited States\n\n电话:555-555-2733\nPaypal 地址:asdf@example.com",
我如何只打印“John Doe”部分而不是信息的 rest? 当我尝试打印到“\”(减号)时,我似乎无法正常工作。 这是因为 \ 是运算符吗?
任何输入都会非常有帮助。
片段:
response = requests.get(url).json()
print('Number of orders: '+str(len(response['orders'])))
print()
for order in response['orders']:
name = order['shipping_address']
print(name)
print()
我假设订单是一个字典,您已经在“shipping_address”下获得了我们需要检测的文本,对于地址,这些单词用“\n”字符分隔,如果这样的话,使用 split 方法真的很简单.
person_name = order['shipping_address'].split("\n")[0]
对于所有其他情况,如果送货地址没有特定的字符区分符,例如行尾 ("\n"),您可以使用 spacy NER 模块来检测人名。 如下所述。
import spacy
shipping_address = "John Doe\n234 NE Asdf St.\nAsdf Town, Oregon, 14423\nUnited States\n\nPhone: 555-555-2733\nPaypal address: asdf@example.com"
nlp = spacy.load('en_core_web_sm')
doc = nlp(shipping_address)
person_name = [ ent for ent in doc.ents if ent.label_ == "PERSON" ]
打印(人名)
[约翰·多伊]
对于 spacy 安装请按照官方指南
您需要在换行符( \n
)上拆分字符串。 一种方法是.split()
方法,它返回在给定字符串上拆分的字符串列表。 例如:
x = 'This-is-an-example'
print(x.split('-'))
// Result: ['This', 'is', 'an', 'example']
您要做的是拆分换行符,并将该列表的第一个元素作为名称。 那将是:
response = requests.get(url).json()
print('Number of orders: '+str(len(response['orders'])))
print()
for order in response['orders']:
shipping_address = order['shipping_address']
name = shipping_address.split('\n')[0]
print(name)
print()
您可以尝试按换行符 ('\n') 拆分名称,并按索引访问 John Doe 部分。
response = requests.get(url).json()
print('Number of orders: '+str(len(response['orders'])))
print()
for order in response['orders']:
name = order['shipping_address']
print(name.split('\n')[0])
print()
我认为您混淆了 '\'字符和 '\n'转义序列。
这两个都代表一个字符。 '\' 表示您在键盘上按下\
键时得到的实际反斜杠字符。
另一方面,'\n' 是换行符的转义序列,即当您在键盘上按Enter
时获得的字符。
如果要获取字符串的第一行,则必须将字符串拆分直到第一个换行符而不是第一个反斜杠。 你这样做:
order['shipping_address'].split('\n')[0]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.