python - 如何解决:TypeError: normalize() argument 2 must be str, not list
问题描述
我正在进行 api 调用,从 ...url/articles.json 中提取所需的端点并将其转换为 csv 文件。我的问题是 ['labels_name'] 端点是一个具有多个值的字符串。(一篇文章可能有多个标签)如何在不出现此错误的情况下提取字符串的多个值。"File "articles_labels.py", line 40, in <module>
decode_3 = unicodedata.normalize('NFKD', article_label)
TypeError: normalize() argument 2 must be str, not list"
?
import requests
import csv
import unicodedata
import getpass
url = 'https://......./articles.json'
user = ' '
pwd = ' '
csvfile = 'articles_labels.csv'
output_1 = []
output_1.append("id")
output_2 = []
output_2.append("title")
output_3 = []
output_3.append("label_names")
output_4 = []
output_4.append("link")
while url:
response = requests.get(url, auth=(user, pwd))
data = response.json()
for article in data['articles']:
article_id = article['id']
decode_1 = int(article_id)
output_1.append(decode_1)
for article in data['articles']:
title = article['title']
decode_2 = unicodedata.normalize('NFKD', title)
output_2.append(decode_2)
for article in data['articles']:
article_label = article['label_names']
decode_3 = unicodedata.normalize('NFKD', article_label)
output_3.append(decode_3)
for article in data['articles']:
article_url = article['html_url']
decode_3 = unicodedata.normalize('NFKD', article_url)
output_3.append(decode_3)
print(data['next_page'])
url = data['next_page']
print("Number of articles:")
print(len(output_1))
with open(csvfile, 'w') as fp:
writer = csv.writer(fp,dialect = 'excel')
writer.writerows([output_1])
writer.writerows([output_2])
writer.writerows([output_3])
writer.writerows([output_4])
解决方案
我的问题是 ['labels_name'] 端点是具有多个值的字符串。(一篇文章可能有多个标签)如何提取字符串的多个值
这是一个列表而不是字符串,因此您没有“具有多个值的字符串”,您已经拥有多个字符串的列表。
问题是你想用它们做什么,CSV当然不会处理这个问题,所以你必须决定一种将字符串列表序列化为单个字符串的方法,例如通过将它们连接在一起(使用一些分隔符,如空格或逗号)或只选择第一个(注意处理没有逗号的情况),......无论哪种方式,问题都不是真正的技术性问题。
推荐阅读
- keyboard - 将 sikulix 与键盘和鼠标动作录制软件相结合?
- javascript - console.log 的奇怪问题
- compiler-construction - 在 LL(1) 解析期间如何构造解析树?
- python - bash 脚本键盘中断移交给 Python 脚本
- api - GMail 推送 API - 400 failedPrecondition
- java - 使用 php 的 shell_exec() 调用 java 程序时出现 Apache 错误?
- entity-framework - 如何将实体框架自定义字符串主键的 Id 大写
- asp.net - "Imports statement is unnecessary" but then "ReportDocument is undefined"?
- airflow - airflow operator to download a file from URL and push to S3?
- google-api - Python3 - Methods of Landmark class? Landmark.getType listed in documentation, but doesn't work