27 lines
626 B
Python
27 lines
626 B
Python
|
import csv
|
||
|
|
||
|
from opyml import OPML, Outline
|
||
|
|
||
|
|
||
|
def main() -> None:
|
||
|
document = OPML()
|
||
|
|
||
|
with open("examples/csv-to-opml.csv", "r") as example_csv:
|
||
|
csv_reader = csv.DictReader(example_csv)
|
||
|
|
||
|
for row in csv_reader:
|
||
|
document.body.outlines.append(
|
||
|
Outline(
|
||
|
# Convert to str because text is a required OPML attribute
|
||
|
# and row.get() can return None.
|
||
|
text=str(row.get("Text")),
|
||
|
xml_url=row.get("Url"),
|
||
|
)
|
||
|
)
|
||
|
|
||
|
print(document.to_xml())
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
main()
|